
BotAuth: un paquete que le permite iniciar sesión con el bot Vkontakte, FaceBook, Telegram.
El objetivo principal de BotAuth es simplificar a los visitantes de los sitios web / inicio de sesión PWA a través de las redes sociales.
Mientras social. Las redes no proporcionan comentarios de las aplicaciones móviles nativas a un sitio web, los desarrolladores tienen que enviar al usuario a un navegador, donde nuevamente deben ingresar un nombre de usuario y contraseña.
Usando bots, puede obtener comentarios (devolución de llamada) de la aplicación nativa, por lo que no obliga a ingresar el nombre de usuario y la contraseña de la red social. red en el navegador.
Demostración:
https://laravel.zetrider.ru/botauthGitHub -
https://github.com/zetrider/BotAuthEnlaces del formulario:
https://vk.me/ https://t.me/ https://m.me/
Abra una aplicación móvil para iniciar un diálogo con el bot. El visitante no tendrá que volver a ingresar el nombre de usuario y la contraseña en el navegador.
Puedes conectar bots:
- Vkontakte
- Telegrama
- Facebook
- Su propio proveedor (ejemplo a continuación)
Instalación- compositor requiere zetrider / botauth
- Conecte el paquete en config / app.php
Proveedor
ZetRider\BotAuth\BotAuthServiceProvider::class,
Fachada
'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class,
- Copia la configuración. archivo
php artisan vendor:publish --tag=botauth-config
si es necesario
php artisan vendor:publish --tag=botauth-views
php artisan vendor:publish --tag=botauth-migrations
- Indicar para lo social necesario. enlace de redes en config / botauth.php en el parámetro de enlace.
- Rellene el archivo ENV con las teclas bot
BOTAUTH_VKONTAKTE_API_SECRET BOTAUTH_VKONTAKTE_API_TOKEN BOTAUTH_VKONTAKTE_API_CONFIRM BOTAUTH_TELEGRAM_API_TOKEN BOTAUTH_TELEGRAM_PROXY BOTAUTH_FACEBOOK_API_SECRET BOTAUTH_FACEBOOK_API_TOKEN BOTAUTH_FACEBOOK_API_CONFIRM
- Ejecutar migraciones
php artisan migrate
- En Middleware VerifyCsrfToken agrega una excepción de dirección para devolución de llamada, el valor predeterminado es botauth / callback / * '
protected $except = [ 'botauth/callback/*'
- Para su modelo de usuario, agregue un rasgo:
use ZetRider\BotAuth\Traits\BotAuthUserTrait;
lo que agregará una relación con los inicios de sesión de los usuarios de la red social. redes
Conexión de bots:Vkontakte- Abra la configuración de su comunidad o cree un nuevo vk.com/groups?w=groups_create
- En la configuración de la comunidad, abra la sección "Configuración" - "Trabajar con la API"
- Cree una contraseña, seleccione "Permitir que la aplicación acceda a los mensajes de la comunidad", escriba la clave, debe especificarse en .env BOTAUTH_VKONTAKTE_API_TOKEN
- En la misma página, seleccione la API de devolución de llamada, seleccione "Versión de API" 5.95 , especifique la dirección de devolución de llamada de su sitio en el campo "Dirección", ejemplo predeterminado
https://DOMAIN/botauth/callback/vkontakte
- A continuación, especifique la línea a la que el servidor debe regresar .env BOTAUTH_VKONTAKTE_API_CONFIRM
- En el campo "Clave secreta", ingrese cualquier clave secreta, especifique en .env BOTAUTH_VKONTAKTE_API_SECRET
- Después de completar todas las claves en .env, haga clic en el botón "Confirmar"
- En la misma página, abra la pestaña "Tipos de eventos", seleccione "Bandeja de entrada"
- Abra la configuración de la comunidad, el elemento "Mensajes", habilite los "mensajes de la comunidad"
- Abra la configuración de la comunidad, el elemento "Mensajes" - "Configuración del bot", active "Funciones del bot"
El bot está listo para funcionar.
Un ejemplo de un enlace directo a un diálogo con un bot
https://vk.me/zetcode
Telegrama- Crea tu bot a través de @BotFather
- Recuerde la clave, especifique en .env BOTAUTH_TELEGRAM_API_TOKEN
- Agregar un enlace web a través de
https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram
reemplace YOUR_TOKEN con su token, DOMAIN con su dominio - Si es necesario, especifique el proxy en .env BOTAUTH_TELEGRAM_PROXY , por ejemplo calcetines5h: //127.0.0.1: 1080
El bot está listo para funcionar.
Un ejemplo de un enlace directo a un diálogo con un bot
https://t.me/BotAuthBot
Facebook- Debe haber creado una página; si no es así, agregue www.facebook.com/pages/creation/?ref_type=universal_creation_hub
- Agregue la nueva aplicación developers.facebook.com/apps
- En la configuración de la aplicación, seleccione "Básico", copie el "Secreto de la aplicación" a .env BOTAUTH_FACEBOOK_API_SECRET
- En la configuración de la aplicación, debe agregar el producto "Messenger"
- En la configuración del producto "Messenger", cree un token de acceso, especifíquelo en .env BOTAUTH_FACEBOOK_API_TOKEN
- En la configuración del producto Messenger, cree un enlace web, especifique en la URL de devolución de llamada
https://DOMAIN/botauth/callback/facebook
reemplaza DOMAIN con tu dominio - En el campo "Confirmar marcador", especifique cualquier texto, guárdelo en .env BOTAUTH_FACEBOOK_API_CONFIRM
- En las opciones de "Campos de suscripción", seleccione "mensajes"
- Haga clic en confirmar
- Después de confirmar el servidor en la configuración de enlace web, seleccione la página, haga clic en "Suscribir"
- En la ventana "Comprobar aplicación de Messenger", junto a "pages_messaging", haga clic en "Agregar a solicitud"
El bot ya está listo para trabajar, pero solo está disponible para los administradores.
Después de confirmar la aplicación, estará disponible para todos los visitantes. Presentar la solicitud para moderación.
Un ejemplo de un enlace directo a un diálogo con un bot
https://m.me/zetridercode
Importante:- El sitio debería funcionar en https
- El bot de Facebook devuelve un PSID que no coincide con el ID de usuario público.
- Por defecto, el controlador bot funciona con el modelo \ App \ User. Si tiene un caso diferente, simplemente cree su controlador y modelo basado en ejemplos del repositorio. Modelo , controlador
Cómo agregar su proveedor:Crea tu clase que hereda una clase abstracta
ZetRider\BotAuth\AbstractProvider
Ejemplo
ejemplo / ExampleProvider.phpAgregue un proveedor al servicio, por ejemplo, AppServiceProvider en el método de arranque
El proveedor procesará las solicitudes en una devolución de llamada en
https://.../botauth/callback/example
EventosEvento sobre el procesamiento exitoso de un nuevo mensaje del bot