目的は非常に単純ですが、現在実行中のアプリに関連付けられているユーザー トークンを取得する方法の例はありません。
私の目的は、Facebookで作成したアプリを使用して、公開Facebookページ(完全なオープンアクセスを備えたビジネスページ)をプルすることです。これは、アプリIDとシークレットを取得するためだけに作成されたもので、PHPにデータのリクエストを実行させ、それを私のホームページで繰り返します。非常に単純ですが、サイトのドキュメントは主に Facebook のログインを扱っていますが、これは私が行うつもりはありません。サイトの公開ビジネス ページからのフィードが欲しいだけです。
これは、Facebookがひどく間違っていると私が思うところです。これまでのところ、適切にクエリを実行しますが、空のデータセットを生成するコードは次のとおりです。
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$app_token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&client_secret=" . $app_secret
. "&grant_type=client_credentials";
$response = file_get_contents($app_token_url);
$params = null;
parse_str($response, $params);
$graph_url = "https://graph.facebook.com/202978003068170/feed?access_token=".$params['access_token'];
$app_details = json_decode(file_get_contents($graph_url), true);
echo '<pre>';
var_dump($app_details);
echo '<pre>';
access_token
Facebookはこれについて漠然としているので、実際の値が何であるかを明確にしましょう. 実際には 2 種類のアクセス トークンがあり、私が作成したアプリには両方の種類があり、ログインしてアプリで作業している場合は、
https ://developers.facebook.com/tools/access_token/ で確認できます。
主な問題は、access_token
上記のコードから oauth が返す値が「アプリ トークン」であることです。これは、ユーザー プロファイル データのクエリに問題はありませんが (これはちょっと怖いです)、所有している公開ビジネス ページをクエリしようとすると空白のデータが返されます{"data":[]}
。のすべての権限を有効にしました。さまざまな方法を 1 週間試し、頭を机に叩きつけ、サードパーティの情報源から部分的な救いを見つけただけで、これら 2 つの違いがわかりました。
ここで、アプリの「ユーザートークン」をプルするために2番目のOAUTHクエリを実行する必要があるという投稿に出くわしました(これは、fbookのトークンデバッガーからアプリトークンに関連付けられたユーザートークンをテストしましたが、機能します) Facebookですが、そのクエリは何で構成されていますか。
誰か助けてください。これはそれほど難しいことではありません。ユーザーが fbook で自分のサイトにログインすることを望んでいません。ビジネス イベント、フィード、写真をビジネス Web サイトに表示したいだけです。
ありがとうございました