如何用Python制作Facebook Messenger Bot()

使用 fbchat 库在 python 中制作 Facebook Messenger 聊天机器人,你可以制作自定义的自动消息和机器人,获取用户信息,以及更多方便的工具。
Python制作Facebook Messenger Bot:能够在 Facebook messenger 中自动化东西并制作有用的机器人似乎很有趣也很酷,在本教程中,我们将看到如何在 Facebook Messenger 中使用 Python 连接并做各种不同的很酷的事情!
Python如何制作Facebook Messenger Bot?我们将使用fbchat库,它通过模拟浏览器来工作。这意味着执行完全相同的GET/POST请求并诱使 Facebook 认为它正在正常访问网站。因此,此 API 不是官方的,它不需要任何 API 密钥,而是需要你的 Facebook 帐户凭据。
相关:  如何在 Python 中制作电报机器人。
首先,你需要安装fbchat库:

pip3 install fbchat

现在开始,创建一个空的 python 文件或打开一个交互式 shell 或 jupyter notebook 并继续,让我们导入fbchat:
from fbchat import Client from fbchat.models import Message

我们先登录:
# facebook user credentials username = "username.or.email" password = "password" # login client = Client(username, password)

注意:你需要输入正确的 Facebook 凭据,否则跟随本教程将没有任何意义。
我们现在有了客户端对象,里面有很多有用的方法,试试  dir()吧。
例如,让我们获取你最近与之交谈的用户:
# get 20 users you most recently talked to users = client.fetchThreadList() print(users)

【如何用Python制作Facebook Messenger Bot()】这将产生一个线程列表,一个线程可以是一个用户或一个组。
Python制作Facebook Messenger Bot:让我们搜索我们最好的朋友,让我们获取有关这些用户的所有信息:
# get the detailed informations about these users detailed_users = [ list(client.fetchThreadInfo(user.uid).values())[ 0] for user in users ]

对我们来说幸运的是,一个线程对象有一个message_count属性来计算你和那个线程之间的消息数,我们可以按这个属性排序:
# sort by number of messages sorted_detailed_users = sorted(detailed_users, key=lambda u: u.message_count, reverse=True)

我们现在有一个按message_count排序的 20 个用户列表,让我们通过以下方式轻松获得最好的朋友:
# print the best friend! best_friend = sorted_detailed_users[ 0] print("Best friend:", best_friend.name, "with a message count of", best_friend.message_count)

让我们通过发送消息来祝贺这位朋友:
# message the best friend! client.send(Message(text=f"Congratulations {best_friend.name}, you are my best friend with {best_friend.message_count} messages!"), thread_id=best_friend.uid)

让我看看消息:
如何用Python制作Facebook Messenger Bot()

文章图片
很棒,对吧?
Python如何制作Facebook Messenger Bot?如果你想在 Messenger 中获取所有与你交谈过的用户,你可以通过:
# get all users you talked to in messenger in your account all_users = client.fetchAllUsers() print("You talked with a total of", len(all_users), "users!")

最后,完成后,请确保注销:
# let's logout client.logout()

Python制作Facebook Messenger Bot:如你所见,你可以使用此库实现无限可能,你可以制作自动回复消息、聊天机器人、回声机器人以及更多很酷的功能。请查看他们的官方文档。

    推荐阅读