高橋  花子

高橋 花子

1636123620

PythonでFacebookMes​​sengerボットを作成する方法

Facebookメッセンジャーで自動化して便利なボットを作成できることは、面白くてクールなようです。このチュートリアルでは、PythonのFacebookメッセンジャーに接続して、さまざまなクールなことを実行する方法を説明します。

fbchatライブラリを使用します。これはブラウザをエミュレートすることで機能します。これは、まったく同じGET / POSTリクエストを実行し、FacebookをだましてWebサイトに正常にアクセスしていると思わせることを意味します。したがって、このAPIは公式ではなく、APIキーを必要としません。代わりに、Facebookアカウントのクレデンシャルが必要です。

まず、fbchatライブラリをインストールする必要があります

pip3 install fbchat

今すぐ始めるために、空のpythonファイルを作るか、または対話型シェルまたはjupyterノートブックを開いて、一緒に従うのインポートを聞かせて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)

これにより、スレッドのリストが作成されます。スレッドはユーザーまたはグループにすることができます。

親友を検索して、これらのユーザーについて取得できるすべての情報を取得しましょう。

# 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から送信されたメッセージ素晴らしいですよね?

話しかけたすべてのユーザーをメッセンジャーで取得したい場合は、次の方法で行うことができます。

# 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()

ご覧のとおり、このライブラリで実行できる可能性は無限にあります。自動返信メッセージ、チャットボット、エコーボット、その他多くの優れた機能を作成できます。彼らの公式ドキュメントを確認してください。

Telegramボットの構築に関するチュートリアルもあります。ぜひ チェックしてください。

リンク: https://www.thepythoncode.com/article/make-bot-fbchat-python

#python 

What is GEEK

Buddha Community

PythonでFacebookMes​​sengerボットを作成する方法
高橋  花子

高橋 花子

1636123620

PythonでFacebookMes​​sengerボットを作成する方法

Facebookメッセンジャーで自動化して便利なボットを作成できることは、面白くてクールなようです。このチュートリアルでは、PythonのFacebookメッセンジャーに接続して、さまざまなクールなことを実行する方法を説明します。

fbchatライブラリを使用します。これはブラウザをエミュレートすることで機能します。これは、まったく同じGET / POSTリクエストを実行し、FacebookをだましてWebサイトに正常にアクセスしていると思わせることを意味します。したがって、このAPIは公式ではなく、APIキーを必要としません。代わりに、Facebookアカウントのクレデンシャルが必要です。

まず、fbchatライブラリをインストールする必要があります

pip3 install fbchat

今すぐ始めるために、空のpythonファイルを作るか、または対話型シェルまたはjupyterノートブックを開いて、一緒に従うのインポートを聞かせて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)

これにより、スレッドのリストが作成されます。スレッドはユーザーまたはグループにすることができます。

親友を検索して、これらのユーザーについて取得できるすべての情報を取得しましょう。

# 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から送信されたメッセージ素晴らしいですよね?

話しかけたすべてのユーザーをメッセンジャーで取得したい場合は、次の方法で行うことができます。

# 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()

ご覧のとおり、このライブラリで実行できる可能性は無限にあります。自動返信メッセージ、チャットボット、エコーボット、その他多くの優れた機能を作成できます。彼らの公式ドキュメントを確認してください。

Telegramボットの構築に関するチュートリアルもあります。ぜひ チェックしてください。

リンク: https://www.thepythoncode.com/article/make-bot-fbchat-python

#python