長期アクセストークン

デフォルトでは、Threadsユーザーアクセストークンは短命で1時間のみ有効です。しかし、短期トークンは長期トークンと交換することができます。

長期有効トークンは60日間有効で、発行から24時間以上経過しておらず期限切れでない場合で、アプリユーザーがあなたのアプリにthreads\_basicアクセス許可を付与していれば更新可能です。更新されたトークンは、更新日から60日間有効です。60日以内に更新されなかったトークンは有効期限が切れ、更新できなくなります。

非公開のThreadsプロフィール用の長時間有効なアクセストークンは、現在更新可能です。さらに、非公開プロフィールを持つアプリユーザーによってアプリに付与されたアクセス許可も、現在90日間有効です。

制限

  • 有効期限が切れた短期トークンは長期トークンと交換できません。ユーザーのトークンが期限切れの場合は、長時間有効なトークンに交換する前に新しいトークンを取得してください。
  • 長期トークンのリクエストにはApp Secretが含まれるので、サーバー側コードでのみ行う必要があります。クライアント側コードまたはデコンパイル可能なアプリバイナリでは決して行わないでください。App Secretを誰かと共有したり、コードで公開したり、クライアントに送信したり、デバイスに保存したりしないでください。

長期トークンの取得

短期のThreadsユーザーアクセストークンを長期トークンと交換するには、GET /access_tokenエンドポイントを使います。取得した長期有効トークンは、サーバー側のリクエストで使うか、またはクライアントに送信してクライアント側で使うことができます。

リクエストはサーバー側で行い、以下を含める必要があります。

  • 有効(期限切れでない)な短時間有効のThreadsユーザーアクセストークン。
  • Threadsアプリのシークレット ([App Dashboard (アプリのダッシュボード )] > [App settings (アプリの設定)] > [Basic (基本)] > [Threads App secret (Threadsアプリの秘密鍵)])。

パラメーター

リクエストに以下のクエリ文字列パラメーターを追加します。

名前説明

client_secret

文字列

必須。
あなたのThreadsアプリのシークレットは、[App Dashboard (アプリのダッシュボード )] > [App settings (アプリの設定)] > [Basic (標準)] > [Threads App secret (Threadsアプリの秘密鍵)]欄に表示されています。

grant_type

文字列

必須。
これをth\_exchange\_tokenに設定します。

access_token

文字列

必須。
有効(期限切れでない)な短期有効のThreadsユーザーアクセストークンで、長期有効トークンと交換したいもの。

リクエストの例

curl -i -X GET "https://graph.threads.net/access_token
  ?grant_type=th_exchange_token
  &client_secret=<THREADS_APP_SECRET>
  &access_token=<SHORT_LIVED_ACCESS_TOKEN>"

応答の例

{
  "access_token": "<LONG_LIVED_USER_ACCESS_TOKEN>",
  "token_type": "bearer",
  "expires_in": 5183944  // number of seconds until token expires
}

長期トークンの更新

有効期限が切れていない長期のThreadsユーザーアクセストークンを更新するには、GET /refresh_access_tokenエンドポイントを使います。長期トークンを更新すると、再度60日間有効になります。60日以内に更新されなかった長期トークンは有効期限が切れます。

リクエストには以下を含める必要があります。

  • 有効(期限切れでない)な長期間有効のThreadsユーザーアクセストークン。

パラメーター

名前説明

grant_type

文字列

必須。
これをth_refresh_tokenに設定してください。

access_token

文字列

必須。
有効(期限切れでない)な長期有効のThreadsユーザーアクセストークンで、更新したいもの。

リクエストの例

curl -i -X GET "https://graph.threads.net/refresh_access_token
  ?grant_type=th_refresh_token
  &access_token=<LONG_LIVED_ACCESS_TOKEN>"

応答の例

{
  "access_token": "<LONG_LIVED_USER_ACCESS_TOKEN>",
  "token_type": "bearer",
  "expires_in": 5183944 // number of seconds until token expires
}