[Python] Threads APIを使ってみる

Python

以前に『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

サンプルプログラム全体は以下となります。

threads_api_test.py
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を使って投稿を自動化することもできるようになります。

コメント

タイトルとURLをコピーしました