以前に『X APIを使ってみる』という記事を書きましたが、本記事はPythonでThreads APIを使ってみた記事になります。
Threads APIを申請するところから、実際にPythonでThreadsに記事を投稿するまでを記載しています。
「投稿を自動化したいけど具体的にどうやるんだろう?」という方を対象に、できるだけ分かりやすく解説していますので、参考にしてみてください。
Threads APIを利用できるようにする
まずはThreads APIを利用するために、Meta開発者として登録する必要があります。
Meta開発者として登録する
Meta社のホームページにアクセスして、「ドキュメントを見る」をクリックします。

続いて「ドキュメント」リンクをクリックします。

Metaでのアプリ開発ページが表示されますので、「登録」をクリックします。

ステップ1に記載されている、https://developers.facebook.com/async/registrationにアクセスします。

facebookにログインしていない場合はログインします。
facebookのアカウントがない場合は新規に作成してください。
「Meta for Developersアカウントを作成」画面が表示されますので、「次へ」をクリックします。

携帯電話番号を求められますので入力後、「認証SMSを送信」をクリックします。

認証コードが送られてきますので、認証コードを入力後、「次へ」をクリックします。

続いてメールアドレスの認証に進みますので、指定されているメールアドレスを確認後、「メールアドレスを認証」をクリックします。

役職を求められますので当てはまりそうな項目を選択して、「登録完了」をクリックします。
(おそらくどの項目を選んでも大丈夫です)

これでMeta開発者としての登録は完了です。
アプリを作成する
Threads APIを利用するためのアプリを作成する必要があります。
アプリ画面で「アプリを作成」をクリックします。

追加のダイアログが表示される場合がありますが、再度「アプリを作成」をクリックします。

アプリ作成画面に移りますので、アプリ名に好きな名前(ここではthreads_apiとしています)を入力し、「次へ」をクリックします。
アプリの連絡先メールアドレスは既に入力されていると思います。

続いて「Threads APIにアクセス」の項目にチェックを入れ、「次へ」をクリックします。

「現時点ではビジネスポートフォリオをリンクしない。」にチェックを入れ、「次へ」をクリックします。

公開の要件に関する確認が表示されますので、「次へ」をクリックします。

最後に「ダッシュボードに移動」をクリックします。

セキュリティのために再度パスワードを求められますので、アカウントパスワードを入力します。
アプリの作成に成功すると、以下のダッシュボードに登録したアプリ(ここではthreads_api)が登録されます。

トークンを生成する
Threads APIによるアクセスを許可するために、トークンを登録する必要があります。
「ユースケース」をクリックします。

画面右側の「カ」(カスタマイズの略)をクリックします。

さらに「設定」をクリックします。

ユーザートークン生成ツールにある「Threadsテスターを追加または削除」をクリックします。

「メンバーを…」(メンバーを追加)をクリックします。

「Threadsテスター」項目にチェックを入れ、ThreadsユーザのIDを入力して、ユーザを選択します。
アプリとThreadsユーザを紐づけることになります。

ユーザが登録され、ステータスが「承認待ち」の状態になります。

今度はThreadsアプリで承認をする必要があります。
Threadsアプリを開き、アカウントを選択します。
「ウェブサイトのアクセス許可」というメニューがありますので、こちらをクリックします。

申請したアプリ名(ここではthreads_api)が表示されると思いますので、「同意する」をクリックします。
再度確認画面が表示されたら、再度「同意する」をクリックします。

これでThreadsアプリからの申請は完了です。

アプリ上のページからも「承認待ち」というステータスが消えており、承認されたことを示しています。

ここからさらに「アクセストークンを生成」をクリックします。

「(ThreadsのユーザID)として実行」をクリックします。

トークンが生成されます。
「確認しました」にチェックすると、トークンが表示されますので、メモ帳などに控えておきます。
最後に「Done」をクリックします。

少し手間ですが、これでThreads APIを利用できるようになりました。
では実際にPythonでThreads APIを使ってみたいと思います。
PythonによるThreads API
サンプルプログラム全体は以下となります。
import requests
ACCESS_TOKEN = "XXXXXXXXXX"
API_BASE_URL = "https://graph.threads.net/v1.0"
def get_user_id():
url = f"{API_BASE_URL}/me"
headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
response = requests.get(url, headers=headers)
if response.ok:
return response.json().get("id")
return None
def create_text_thread(user_id, text):
url = f"{API_BASE_URL}/{user_id}/threads"
data = {"text": text, "media_type": "TEXT"}
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json",
}
response = requests.post(url, json=data, headers=headers)
if response.ok:
return response.json().get("id")
return None
def publish_thread(user_id, creation_id):
url = f"{API_BASE_URL}/{user_id}/threads_publish"
data = {"creation_id": creation_id}
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json",
}
response = requests.post(url, json=data, headers=headers)
if response.ok:
return response.json()
return None
if __name__ == '__main__':
user_id = get_user_id()
print("ユーザーID:%s" % user_id)
creation_id = create_text_thread(user_id, "サンプル投稿!!")
print("スレッドの作成に成功しました:%s" % creation_id)
publish_response = publish_thread(user_id, creation_id)
if publish_response:
print("スレッドの公開に成功しました:%s" % publish_response)
以下のような標準出力となり、実際にThreadsに投稿できたことを確認できます。
$ python thread_api_test.py
ユーザーID:32251052xxxxxxxx
スレッドの作成に成功しました:17897670882340965
スレッドの公開に成功しました:{'id': '18318298216170449'}
Threadsアプリを開くと、きちんと投稿できています。

これでPythonからThreads APIを使って投稿することができました。
まとめ
本記事では、Threads APIを申請するところから、実際にPythonでThreadsに記事を投稿するまでを解説しました。
トークン発行までがちょっと手間ですが、一つずつ対応してもらえたら迷わないと思います。
Pythonプログラムもそこまで複雑ではなく、やり方さえ分かってしまえば応用もしやすいと思います。
これでThreads APIを使って投稿を自動化することもできるようになります。


コメント