私の Facebook ユーザーは、いくつかの Facebook ページの管理者です。私がやろうとしているのは、これらのページのいずれかのフィードに、外部の PHP Web サイトから自動的に投稿することです。たとえば、サイトで何か興味深いことが起こったときに、そのページのニュース ストリームに通知を発行します。
Facebook でアプリケーションを作成しました。次のように php fb API を使用しています。
//actual values redacted, obviously
$appId = 'my_app_id';
$pageId = 'my_page_id';
$secret = 'my_app_secret';
//First i'm getting the authtoken
$args = array(
'grant_type' => 'client_credentials',
'client_id' => $appid,
'client_secret' => $secret
);
$ch = curl_init();
$url = 'https://graph.facebook.com/oauth/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
//this comes back from facebook like auth_token=xxxxx
$token = str_replace("access_token=", "", $data); //remove 'auth_token='
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $secret,
'cookie' => false,
'domain' => 'mydomain.net'
));
$facebook->api("/$pageId/feed", 'post', array(
'access_token' => $token,
'link' => 'http://www.example.com'
));
これは facebook に接続し、フィードに公開しようとしますが、次のように言って失敗します:
(#200) The user hasn't authorized the application to perform this action
私の質問は、アプリケーションがフィードに公開することをどのように承認すればよいのでしょうか? アプリに設定が表示されず、ページにアクセス許可を「追加」する方法がないようです。この時点で私は完全に道に迷っており、Facebook のドキュメントはあまり役に立ちません。
どんな助けでも本当に感謝しています。私はこれで一日を失いました。