1. ホーム
  2. facebook

[解決済み】facebook: 永続的なページアクセストークン?

2022-04-12 10:09:20

質問

私は、データソースの1つとしてfacebookページを持っているプロジェクトに取り組んでいます。GUIを使用せず、定期的にデータをインポートしています。その後、すでに持っているデータを表示するためにWebアプリを使用しています。

すべての情報が公開されているわけではありません。つまり、一度データにアクセスして、それを保持する必要があるんです。しかし、その手順がわからず、まだ良いチュートリアルを見つけられていません。必要なのは access_token を、どのようにすれば、ユーザーから段階的に取得できるでしょうか?ユーザーはfacebookページの管理者ですが、彼は私たちのFBアプリをページに追加する必要があるのでしょうか?

EDIT: @phwd さん、ありがとうございます。このチュートリアルでは、ページアクセストークンを取得する方法について説明します。 offline_access は存在しなくなりました。

EDIT: ここで回答されているのを今知りました。 サーバーがFBページ情報を取得するための長期的なFBアクセス・トークン

解決方法は?

Facebookの ページトークンの拡張に関する文書 有効期限切れのないページアクセストークンを取得することができました。

を使うことをお勧めします。 グラフAPIエクスプローラ は、特に明記されていない限り、これらのすべてのステップで使用します。

0. Facebookアプリの作成

すでにアプリをお持ちの場合 をクリックすると、ステップ1に進みます。

  1. 次のページへ マイアプリ .
  2. 新しいアプリを追加する」をクリックします。
  3. Webサイトアプリを設定します。

パーミッションを変更したりする必要はありません。アクセストークンを使い終わる前に消えてしまわないようなアプリが必要なだけです。

1. ユーザー短命型アクセストークンの取得

  1. に移動します。 グラフAPIエクスプローラ .
  2. アクセストークンを取得したいアプリケーションを選択します(quot;My Apps"メニューではなく、quot;Application"ドロップダウン メニュー)。
  3. "Get Token" > "Get User Access Token"をクリックします。
  4. ポップアップで、"Extended Permissions"タブで、"manage_pages"をチェックします。
  5. アクセストークンの取得」をクリックします。
  6. 対象ページを管理できるアクセス権を持つFacebookアカウントからのアクセスを許可する。このユーザーがアクセスできなくなった場合、最終的な有効期限のないアクセストークンが機能しなくなる可能性が高いことに注意してください。

Access Token"フィールドに表示されるトークンは、短命のアクセストークンです。

2. ロングライフアクセストークンの生成

以下 これらの指示は に GET リクエストを送信します。

<ブロッククオート

https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {app_id} &client_secret= {app_secret} &fb_exchange_token= ショートライブトークン{short_lived_token}」。

に、アプリのIDとシークレット、前のステップで生成されたshort-lived トークンを入力します。

あなたは グラフ API エクスプローラーを使用することはできません。 . なぜかこのリクエストで引っかかる。レスポンスがJSONではなく、クエリ文字列だからだと思うのですが。GETリクエストなので、ブラウザでURLにアクセスすればいいだけなんですけどね。

このようなレスポンスが返ってくるはずです。

<ブロッククオート

{"access_token":" ABC123 ","token_type":"bearer","expires_in":5183791}のようになります。

このトークンは、あなたのアクセストークンです。これを アクセストークンデバッガー を確認します。Expires"の下に "2 months" のようなものがあるはずです。

3. ユーザーIDの取得

長期保存されたアクセストークンを使って、以下のサイトにGETリクエストをします。

https://graph.facebook.com/v2.10/me?access_token= {long_lived_access_token}を使用します。

id フィールドはあなたのアカウントIDです。次のステップで必要になります。

4. パーマネントページアクセストークンの取得

へのGETリクエストを行います。

https://graph.facebook.com/v2.10/ {アカウントID}を入力してください。 /accounts?access_token= {long_lived_access_token}を使用します。

JSONレスポンスには data フィールドがあり、その下にユーザーがアクセスできるアイテムの配列があります。恒久的なアクセストークンを取得したいページの項目を探します。このとき access_token フィールドに、あなたの永久アクセストークンがあるはずです。それをコピーして アクセストークンデバッガー . Expires"の下に "Never" と表示されているはずです。