Recevoir automatiquement des informations sur les produits via Facebook Messenger
Ce tutoriel vous montre comment fournir automatiquement à un utilisateur des informations pertinentes sur un produit via Facebook Messenger.
Dans ce cas d'utilisation, l'utilisateur salue l'entreprise via sa page Facebook. Un message est automatiquement envoyé à l'utilisateur. Grâce à la correspondance des mots-clés, l'utilisateur peut recevoir des informations personnalisées sur les produits et les services.
NOTE : Ce tutoriel suppose que vous avez déjà créé un profil et une page Facebook.
Code source
Le code source de ce projet est disponible dans la communauté Dépôt GitHub.
Conditions préalables
- Créer un Account Vonage
- Installer Node JS - nécessaire pour utiliser l'interface de ligne de commande (CLI) de Vonage.
- Installer le CLI de Vonage
- Savoir comment tester votre serveur webhook localement
- Python 3 installé
- Flacon installé
Les étapes
Une fois les conditions préalables remplies, les étapes sont les suivantes :
- Créer une application Vonage
- Reliez votre application Vonage à votre page Facebook
- Faire fonctionner Ngrok
- Rédigez votre application de base
- Interagissez avec votre page Facebook
- Client minimal pour l'envoi de messages Facebook Messenger en utilisant Python
- Le cas d'utilisation revisité
- Une mise en œuvre
Il existe plusieurs façons d'obtenir le même résultat avec Vonage. Ce tutoriel ne montre qu'une façon spécifique de faire les choses, par exemple vous verrez comment utiliser la ligne de commande pour créer l'application, plutôt que le tableau de bord. D'autres tutoriels démontrent d'autres façons de faire.
Créez votre Applications Vonage
Si vous ne l'avez pas encore fait, créez un nouveau répertoire pour votre projet, par exemple fbm-app. Entrez dans ce répertoire.
Utilisez le CLI pour créer votre application Vonage :
Notez l'identifiant d'application généré. Vous pouvez également le vérifier dans la fenêtre tableau de bord.
Cette commande crée également une clé privée, fbm_app.key dans votre répertoire actuel, ainsi que la mise à jour/création de vonage_app.json.
Cette commande définit également les deux webhooks où toutes les interactions ont lieu entre votre application et Vonage. Vous devez avoir un serveur en cours d'exécution et accessible à Vonage à ces URLs.
Reliez votre application à votre page Facebook
Partie 1 : Connectez votre page Facebook à votre compte API Vonage
La connexion de votre page Facebook à votre compte API Vonage permet à Vonage de gérer les messages entrants et vous permet d'envoyer des messages à partir de l'API Messages.
Pour relier votre page Facebook à votre Account API de Vonage, visitez la page Lier la page Facebook dans votre tableau de bord.
Connectez-vous à votre Account Facebook à partir du tableau de bord.
Sélectionnez la page Facebook que vous souhaitez connecter à votre compte API Vonage dans la liste déroulante.
Sélectionnez la clé API que vous souhaitez utiliser.
Cliquez sur Configuration complète.
À ce stade, votre compte API Vonage et cette page Facebook sont liés. Le lien entre votre compte API Vonage et votre page Facebook n'a pas de date d'expiration, mais il peut occasionnellement expirer. Après l'expiration, vous devez le relier à nouveau en utilisant le même processus.
Partie 2 : Connectez votre page Facebook à votre application API Vonage
Une fois que votre page Facebook est connectée à votre compte API Vonage, elle devient disponible pour être utilisée par n'importe laquelle de vos applications. Pour connecter la page Facebook à une application API de Vonage :
Naviguez jusqu'à votre page des applications.
Dans la liste, cliquez sur l'application que vous souhaitez lier. Vous pouvez filtrer en utilisant le bouton Capacités et en sélectionnant
messagespour faciliter les choses.Sélectionnez ensuite l'option Canaux sociaux liés tabulation.
Cliquez sur le bouton Lien à côté de la page Facebook à laquelle vous souhaitez connecter votre application, en veillant à ce que le bouton Fournisseur est Facebook Messenger.
Vous êtes maintenant prêt à recevoir les messages que les utilisateurs vous envoient sur votre page Facebook.
NOTE : Si, à l'avenir, vous souhaitez lier une autre application à cette page Facebook, il vous suffira de répéter la procédure décrite dans la partie 2, pour la nouvelle application.
Faire fonctionner Ngrok
Assurez-vous que vous avez lancé Ngrok pour le tester localement. Pour démarrer Ngrok, tapez
Pour générer une URL Ngrok temporaire. Si vous êtes un abonné payant, vous pouvez taper :
Notez que dans ce cas, Ngrok détournera les webhooks de Vonage que vous avez spécifiés lors de la création de votre application Vonage vers localhost:9000.
Rédigez votre application de base
Ainsi, dans le cas le plus simple, votre application ressemblerait à ce qui suit :
from flask import Flask, request, jsonify
from pprint import pprint
app = Flask(__name__)
@app.route('/inbound', methods=['POST'])
def inbound_message():
data = request.get_json()
pprint(data)
return ("200")
@app.route('/status', methods=['POST'])
def message_status():
data = request.get_json()
pprint(data)
return ("200")
if __name__ == '__main__':
app.run(host="localhost", port=9000)
Ajoutez ce code à un fichier appelé app1.py et l'enregistrer.
Exécutez-le localement avec :
Votre application de base est maintenant opérationnelle et prête à enregistrer des événements.
Interagissez avec votre page Facebook
Maintenant que votre application de base est opérationnelle, vous pouvez envoyer un message à votre page Facebook, puis vérifier que le message est enregistré. Ainsi, si vous envoyez un message de base à votre page Facebook à l'aide de Messenger, vous obtiendrez un enregistrement tel que le suivant :
Vous y trouverez des informations importantes que vous pourrez utiliser pour développer votre application et la rendre plus utile.
| Champ d'application | Description |
|---|---|
from | L'identifiant Facebook de la personne qui envoie un message à votre page. |
to | L'identifiant Facebook de votre page (la page à laquelle la personne envoie un message). |
message | Le message envoyé. |
Vous pouvez voir que le message est un objet JSON. Vous pouvez extraire le texte du message de cet objet.
Notez qu'il est utile d'enregistrer à la fois l'identifiant Facebook de votre page (que vous ne connaissiez peut-être pas) et l'identifiant Facebook de l'utilisateur qui vous envoie un message. L'enregistrement de l'identifiant Facebook est particulièrement utile si votre application gère plusieurs pages Facebook.
Client minimal pour l'envoi de messages Facebook Messenger en utilisant Python
Actuellement, Vonage ne prend pas officiellement en charge les Messages API et Dispatch API dans le SDK du serveur Python, mais notre API REST est entièrement prise en charge et la fonction Le code Python est fourni dans le projet pour vous dans une classe réutilisable. Le code étant fourni, nous ne l'aborderons pas plus avant dans ce tutoriel.
Le cas d'utilisation revisité
Il est temps d'examiner ce cas d'utilisation plus en détail afin que vous puissiez construire votre application de manière plus efficace.
Imaginez qu'un utilisateur envoie un message du type "Bonjour" à votre page Facebook via Messenger. Cependant, en raison des fuseaux horaires, vous n'êtes pas disponible pour répondre au message - l'utilisateur risque de se sentir découragé. D'un autre côté, ce serait formidable si vous pouviez répondre automatiquement avec des informations utiles. Par exemple, à un message tel que "Bonjour", vous pourriez répondre par "Bienvenue chez T's Cat Supplies. Voici nos principales catégories de produits : jouets, nourriture, médicaments, bling-bling".
En utilisant une construction Python telle que if keyword in msg vous pouvez détecter des mots-clés et envoyer des documents en fonction de ceux-ci. Par exemple, si un utilisateur envoie un message du type "Bonjour, mes réservoirs ont besoin d'être triés", vous pouvez détecter le mot tank et envoyez des informations sur vos services de nettoyage de réservoirs. Ou si vous recevez un message du type "Bonjour, je pense que j'ai besoin d'une grue pour soulever nos sections de pipelines". Vous pouvez envoyer des informations sur vos services de location de grues. Lorsque des mots clés ne sont pas détectés, il est facile de renvoyer un message générique à l'utilisateur pour l'aider à s'orienter.
Cette fonction de réponse automatique est utile car certaines entreprises ont des centaines de produits et de services.
Une autre fonction utile est la possibilité de désactiver la réponse automatique, par exemple pour traiter directement avec un humain. Vous pourriez intégrer des commandes telles que auto: off et auto: on pour contrôler la façon dont vos clients interagissent avec votre page Facebook.
Dans les sections suivantes, vous verrez comment mettre en œuvre ce cas d'utilisation.
Une mise en œuvre
L'une des structures de données utiles pour mettre en œuvre ce cas d'utilisation est le dictionnaire Python. Vous pouvez en voir un exemple ici :
cats_dict = {
'other': 'Our products: toys, food, meds, and bling',
'toys': 'More info on cat toys here https://bit.ly/abc',
'food': 'More info on cat food here https://bit.ly/def',
'meds': 'More info on cat meds here https://bit.ly/ghi',
'bling': 'More info on cat bling here https://bit.ly/jkl'
}
Pour mettre cela en perspective, examinez le code suivant :
class ProductMatcher:
auto_mode = True
cats_dict = {
'other': 'Our products: toys, food, meds, and bling',
'toys': 'More info on cat toys here https://bit.ly/abc',
'food': 'More info on cat food here https://bit.ly/def',
'meds': 'More info on cat meds here https://bit.ly/ghi',
'bling': 'More info on cat bling here https://bit.ly/jkl'
}
...
def product_matcher(self, fb_sender, user, msg):
product = 'other'
msg = msg.lower().strip()
if self.auto_mode:
if "auto: off" in msg:
self.auto_mode = False
self.fbm.send_message(fb_sender, user, "Auto mode is off")
return
for k in self.cats_dict.keys():
if k in msg:
product = k
break
self.fbm.send_message(fb_sender, user, self.cats_dict[product])
if "auto: on" in msg:
self.auto_mode = True
self.fbm.send_message(fb_sender, user, "Auto mode is on")
return product
Si l'utilisateur envoie un message via Messenger et qu'aucun humain ne répond, un menu est renvoyé à l'utilisateur. Dans le message de l'utilisateur, le produit est extrait et le message approprié est envoyé. Ce code adopte une approche spécifique, mais j'espère qu'il indique le potentiel.
Vous vous demandez peut-être si cela ne risque pas de gêner l'utilisateur s'il souhaite parler à une personne réelle. Cependant, la réponse automatique peut être désactivée une fois que vous êtes en ligne et que vous pouvez prendre des messages. Le code permet à l'utilisateur d'utiliser les commandes suivantes auto: off et auto: on pour contrôler l'interaction. Ce contrôle pourrait également être assuré par le gestionnaire du canal.
Dans le code ci-dessus, le produit qui intéresse l'utilisateur est également renvoyé. Cela pourrait être utilisé si, par exemple, vous vouliez enregistrer l'utilisateur et son choix de produit dans une base de données. Vous pouvez également rechercher un utilisateur dans la base de données pour savoir s'il s'agit d'un nouveau client ou s'il a déjà eu affaire à l'entreprise.
Résumé
Dans ce tutoriel, vous avez vu un cas d'utilisation où l'utilisateur peut recevoir automatiquement des informations sur un produit via Facebook Messenger. Ce cas d'utilisation était basé sur la correspondance de mots-clés. L'utilisateur avait également la possibilité de basculer le mode de réponse automatique en fonction de ses besoins.
Autres ressources
- L'ensemble code source.
- Messages API la documentation