使用 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:让我们搜索我们最好的朋友,让我们获取有关这些用户的所有信息:
# 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?如果你想在 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:如你所见,你可以使用此库实现无限可能,你可以制作自动回复消息、聊天机器人、回声机器人以及更多很酷的功能。请查看他们的官方文档。