BotAuth - connexion et enregistrement Ă  l'aide de bots



BotAuth - un package qui vous permet de vous connecter en utilisant le bot Vkontakte, FaceBook, Telegram.

L'objectif principal de BotAuth est de simplifier les visiteurs des sites Web / connexion PWA via les réseaux sociaux.

Bien que social. Les réseaux ne fournissent pas de commentaires des applications mobiles natives à un site Web; les développeurs doivent envoyer un utilisateur à un navigateur, où ils doivent saisir à nouveau leur identifiant et leur mot de passe.

En utilisant des bots, vous pouvez obtenir des commentaires (rappel) de l'application native, ne forçant ainsi pas à entrer le nom d'utilisateur et le mot de passe du social. réseau dans le navigateur.

Démo - https://laravel.zetrider.ru/botauth
GitHub - https://github.com/zetrider/BotAuth

Liens du formulaire:

https://vk.me/ https://t.me/ https://m.me/ 

ouvrez une application mobile pour entamer un dialogue avec le bot. Le visiteur n'aura pas Ă  ressaisir le nom d'utilisateur et le mot de passe dans le navigateur.

Vous pouvez connecter des bots:

  • Vkontakte
  • TĂ©lĂ©gramme
  • Facebook
  • Votre propre fournisseur (exemple ci-dessous)

L'installation
  1. compositeur nécessite zetrider / botauth
  2. Connectez le package dans config / app.php
    Fournisseur
     ZetRider\BotAuth\BotAuthServiceProvider::class, 

    Façade
     'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class, 

  3. Copiez la configuration. fichier
     php artisan vendor:publish --tag=botauth-config 

    si nécessaire
     php artisan vendor:publish --tag=botauth-views 

     php artisan vendor:publish --tag=botauth-migrations 

  4. Indiquez pour le social nécessaire. réseaux lien dans config / botauth.php dans le paramètre lien.
  5. Remplissez le fichier ENV avec des clés de 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 

  6. Exécuter des migrations
     php artisan migrate 

  7. Dans Middleware VerifyCsrfToken, ajoutez une exception d'adresse pour le rappel, la valeur par défaut est botauth / callback / * '
     protected $except = [ 'botauth/callback/*' // Except callback Csrf middleware ]; 

  8. Pour votre modèle utilisateur, ajoutez un trait:
     use ZetRider\BotAuth\Traits\BotAuthUserTrait; 

    ce qui ajoutera une relation avec les connexions utilisateur à partir du social. réseaux


Connecter les bots:

Vkontakte
  1. Ouvrez les paramètres de votre communauté ou créez un nouveau vk.com/groups?w=groups_create
  2. Dans les paramètres de la communauté, ouvrez la section "Paramètres" - "Travailler avec l'API"
  3. Créez un mot de passe, sélectionnez "Autoriser l'application à accéder aux messages de la communauté", notez la clé, elle doit être spécifiée dans .env BOTAUTH_VKONTAKTE_API_TOKEN
  4. Sur la même page, sélectionnez l'API de rappel, sélectionnez «Version API» 5.95 , spécifiez l'adresse de rappel de votre site dans le champ «Adresse», exemple par défaut
     https://DOMAIN/botauth/callback/vkontakte 
  5. Ci-dessous, spécifiez la ligne vers laquelle le serveur doit retourner .env BOTAUTH_VKONTAKTE_API_CONFIRM
  6. Dans le champ "Clé secrète", entrez une clé secrète, spécifiez en .env BOTAUTH_VKONTAKTE_API_SECRET
  7. Après avoir rempli toutes les clés en .env, cliquez sur le bouton "Confirmer"
  8. Sur la même page, ouvrez l'onglet «Types d'événements», sélectionnez «Boîte de réception»
  9. Ouvrez les paramètres de la communauté, l'élément "Messages", activez les "messages de la communauté"
  10. Ouvrez les paramètres de la communauté, l'élément "Messages" - "Paramètres du bot", activez "Fonctionnalités du bot"

Le bot est prĂŞt Ă  partir.

Un exemple de lien direct vers un dialogue avec un bot
 https://vk.me/zetcode 


Télégramme
  1. Créez votre bot via @BotFather
  2. N'oubliez pas la clé, spécifiez en .env BOTAUTH_TELEGRAM_API_TOKEN
  3. Ajouter un hook Web via
     https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram 

    remplacez YOUR_TOKEN par votre jeton, DOMAIN par votre domaine
  4. Si nécessaire, spécifiez le proxy dans .env BOTAUTH_TELEGRAM_PROXY , par exemple socks5h: //127.0.0.1: 1080

Le bot est prĂŞt Ă  partir.

Un exemple de lien direct vers un dialogue avec un bot
 https://t.me/BotAuthBot 


Facebook
  1. Vous devez avoir créé une page, si ce n'est pas le cas, ajoutez www.facebook.com/pages/creation/?ref_type=universal_creation_hub
  2. Ajoutez la nouvelle application developers.facebook.com/apps
  3. Dans les paramètres de l'application, sélectionnez «De base», copiez le «Secret d'application» dans .env BOTAUTH_FACEBOOK_API_SECRET
  4. Dans les paramètres de l'application, vous devez ajouter le produit "Messenger"
  5. Dans les paramètres du produit «Messenger», créez un jeton d'accès, spécifiez-le dans .env BOTAUTH_FACEBOOK_API_TOKEN
  6. Dans les paramètres du produit Messenger, créez un hook web, spécifiez dans l'URL de rappel
     https://DOMAIN/botauth/callback/facebook 
    remplacez DOMAIN par votre domaine
  7. Dans le champ "Confirmer le marqueur", spécifiez n'importe quel texte, enregistrez-le dans .env BOTAUTH_FACEBOOK_API_CONFIRM
  8. Dans les options "Champs d'abonnement", sélectionnez "messages"
  9. Cliquez sur Confirmer
  10. Après avoir confirmé le serveur dans les paramètres de connexion Web, sélectionnez la page, cliquez sur "S'abonner"
  11. Dans la fenêtre «Vérifier l'application Messenger», à côté de «pages_messaging», cliquez sur «Ajouter à la demande»

Le bot est déjà prêt à fonctionner, mais n'est disponible que pour les administrateurs.

Après avoir confirmé l'application, elle sera disponible pour tous les visiteurs. Soumettez la demande de modération.

Un exemple de lien direct vers un dialogue avec un bot
 https://m.me/zetridercode 


Important:

  1. Le site devrait fonctionner sur https
  2. Le bot Facebook renvoie un PSID qui ne correspond pas Ă  l'ID utilisateur public.
  3. Par défaut, le contrôleur de bot fonctionne avec le modèle \ App \ User. Si vous avez un cas différent, créez simplement votre contrôleur et votre modèle à partir d'exemples du référentiel. Modèle , contrôleur

Comment ajouter votre fournisseur:

Créez votre classe qui hérite d'une classe abstraite

 ZetRider\BotAuth\AbstractProvider 

Exemple d' exemple / ExampleProvider.php

Ajoutez un fournisseur au service, par exemple AppServiceProvider dans la méthode de démarrage

 // Register example proider BotAuth::extend('example', function() { return new \Path\To\Your\Class\ExampleProvider(); }); 

Le fournisseur traitera les demandes lors d'un rappel Ă 

 https://.../botauth/callback/example 

Les événements

Événement sur le traitement réussi d'un nouveau message du bot

 // Catch bot callback \Event::listen(\ZetRider\BotAuth\Events\MessageNewEvent::class, function($event) { $provider = $event->provider; // ZetRider\BotAuth\AbstractProvider $slug = $provider->getProviderSlug(); $data = $provider->getCallbackResponse(); $user = $provider->getUser(); $text = $provider->getText(); // You can send a message // $provider->sendMessage(__('Back to web site')); }); 

Source: https://habr.com/ru/post/fr455104/


All Articles