この問題は、ページ アクセス トークンの代わりにユーザー アクセス トークンを使用すると発生します。
私はFacebook Graph API Explorerでこれを行っていましたが、ページ アクセス トークンを使用していると思っていましたが、そうではありませんでした。{page-id}/conversations?access_token={page_access_token}
API Explorer から実行すると、上部の [アクセス トークン]フィールドに が表示さ{user_access_token}
れていました。これは、Explorer が送信した実際のリクエストで送信されていました (Chrome の開発ツールで見られるように)。つまり、API Explorer は I 入力を無視し、 Access Tokenフィールドの値を使用していました。{page_access_token}
Access Tokenフィールドをクリアするか{page_access_token}
、そのフィールドに を入力すると、意図したもの{page_access_token}
が送信されました。ブラウザーと API Explorer でいくつかの手順を実行すると、方法がわかりました。
この問題を解決する手順は次のとおりです。
API エクスプローラーから [アクセス トークンの取得] をクリックし、指定されたアクセス許可を選択するか、以下の URL にアクセスしてmanage_pages
、ユーザー アクセス トークンを取得します。read_page_mailboxes
https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&request_type=token&scope=manage_pages,read_page_mailboxes
ページ アクセス トークンを取得します: API Explorer から実行/me/accounts
するか、以下の URL にアクセスします。
https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token}
会話を取得する:上記の手順のページ アクセス トークン (API Explorer を使用している場合は [アクセス トークン] フィールドに貼り付けます) を使用して、/{page-id}/conversations
以下の URL を実行するかアクセスして会話**を取得します。
https://graph.facebook.com/v2.0/{page-id}/conversations?method=GET&format=json&suppress_http_code=1&access_token={page-access-token}
*read_mailbox
上記のコメントで述べたこととは逆に、許可は必要ありません。実際には、エラー メッセージは正しくありませんでした。ユーザー アクセス トークンを使用してページ エッジにアクセスしようとすると、無効なページ アクセス トークン エラーではなく、ユーザー アクセス エラーが返されます。
** 会話にアクセスするには、ユーザーは Facebook ページの管理者である必要があります。