
BotAuth - um pacote que permite fazer login usando o bot Vkontakte, FaceBook, Telegram.
O principal objetivo do BotAuth é simplificar os visitantes dos sites / login do PWA através das redes sociais.
Enquanto social. As redes não fornecem feedback de aplicativos móveis nativos para um site; os desenvolvedores precisam enviar um usuário para um navegador, onde precisam digitar seu login e senha novamente.
Usando bots, você pode obter feedback (retorno de chamada) do aplicativo nativo, sem forçar a digitação do nome de usuário e senha do social. rede no navegador.
Demo -
https://laravel.zetrider.ru/botauthGitHub -
https://github.com/zetrider/BotAuthLinks do formulário:
https://vk.me/ https://t.me/ https://m.me/
abra um aplicativo móvel para iniciar um diálogo com o bot. O visitante não precisará digitar novamente o nome de usuário e a senha no navegador.
Você pode conectar bots:
- Vkontakte
- Telegram
- Facebook
- Seu próprio provedor (exemplo abaixo)
Instalação- compositor requer zetrider / botauth
- Conecte o pacote em config / app.php
Fornecedor
ZetRider\BotAuth\BotAuthServiceProvider::class,
Fachada
'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class,
- Copie a configuração. arquivo
php artisan vendor:publish --tag=botauth-config
se necessário
php artisan vendor:publish --tag=botauth-views
php artisan vendor:publish --tag=botauth-migrations
- Indique para o social necessário. link de redes em config / botauth.php no parâmetro link.
- Preencher arquivo ENV com chaves 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
- Executar migrações
php artisan migrate
- No Middleware VerifyCsrfToken, adicione uma exceção de endereço para retorno de chamada, o padrão é botauth / callback / * '
protected $except = [ 'botauth/callback/*'
- Para o seu modelo de usuário, adicione uma característica:
use ZetRider\BotAuth\Traits\BotAuthUserTrait;
que adicionará um relacionamento com os logins de usuário do social. redes
Conexão de bots:Vkontakte- Abra as configurações da sua comunidade ou crie um novo vk.com/groups?w=groups_create
- Nas configurações da comunidade, abra a seção "Configurações" - "Trabalhar com a API"
- Crie uma senha, selecione "Permitir que o aplicativo acesse mensagens da comunidade", anote a chave, ela deve ser especificada em .env BOTAUTH_VKONTAKTE_API_TOKEN
- Na mesma página, selecione a API de retorno de chamada, selecione "Versão da API" 5.95 , especifique o endereço de retorno de chamada do seu site no campo "Endereço", exemplo padrão
https://DOMAIN/botauth/callback/vkontakte
- Abaixo especifique a linha que o servidor deve retornar para .env BOTAUTH_VKONTAKTE_API_CONFIRM
- No campo "Chave secreta", insira qualquer chave secreta, especifique em .env BOTAUTH_VKONTAKTE_API_SECRET
- Depois de preencher todas as chaves em .env, clique no botão "Confirmar"
- Na mesma página, abra a guia "Tipos de eventos", selecione "Caixa de entrada"
- Abra as configurações da comunidade, o item "Mensagens", ative as "mensagens da comunidade"
- Abra as configurações da comunidade, o item "Mensagens" - "Configurações do bot", ative "Recursos do bot"
O bot está pronto para ir.
Um exemplo de um link direto para um diálogo com um bot
https://vk.me/zetcode
Telegram- Crie seu bot via @BotFather
- Lembre-se da chave, especifique em .env BOTAUTH_TELEGRAM_API_TOKEN
- Adicione um gancho da web via
https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram
substitua YOUR_TOKEN pelo seu token, DOMAIN pelo seu domínio - Se necessário, especifique o proxy em .env BOTAUTH_TELEGRAM_PROXY , por exemplo socks5h: //127.0.0.1: 1080
O bot está pronto para ir.
Um exemplo de um link direto para um diálogo com um bot
https://t.me/BotAuthBot
Facebook- Você deve ter criado uma página, caso contrário, adicione www.facebook.com/pages/creation/?ref_type=universal_creation_hub
- Adicione o novo aplicativo developers.facebook.com/apps
- Nas configurações do aplicativo, selecione "Básico", copie o "Segredo do aplicativo" para .env BOTAUTH_FACEBOOK_API_SECRET
- Nas configurações do aplicativo, você precisa adicionar o produto "Messenger"
- Nas configurações do produto "Messenger", crie um token de acesso, especifique-o em .env BOTAUTH_FACEBOOK_API_TOKEN
- Nas configurações do produto Messenger, crie um gancho da web, especifique no URL de retorno de chamada
https://DOMAIN/botauth/callback/facebook
substitua DOMAIN pelo seu domínio - No campo "Confirmar marcador", especifique qualquer texto, salve-o em .env BOTAUTH_FACEBOOK_API_CONFIRM
- Nas opções "Campos de inscrição", selecione "mensagens"
- Clique em Confirmar
- Após confirmar o servidor nas configurações do gancho da web, selecione a página, clique em "Inscrever-se"
- Na janela "Check Messenger Application", ao lado de "pages_messaging", clique em "Add to Request"
O bot já está pronto para o trabalho, mas está disponível apenas para administradores.
Depois de confirmar o aplicativo, ele ficará disponível para todos os visitantes. Envie o pedido de moderação.
Um exemplo de um link direto para um diálogo com um bot
https://m.me/zetridercode
Importante:- O site deve funcionar em https
- O bot do Facebook retorna um PSID que não corresponde ao ID do usuário público.
- Por padrão, o controlador bot funciona com o modelo \ App \ User. Se você tiver um caso diferente, basta criar seu controlador e modelo com base nos exemplos do repositório. Modelo , Controlador
Como adicionar seu provedor:Crie sua classe que herda uma classe abstrata
ZetRider\BotAuth\AbstractProvider
Exemplo de
exemplo / ExampleProvider.phpAdicione um provedor ao serviço, por exemplo, AppServiceProvider no método de inicialização
O provedor processará solicitações em um retorno de chamada em
https://.../botauth/callback/example
EventosEvento no processamento bem-sucedido de uma nova mensagem do bot