0

私の 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 のドキュメントはあまり役に立ちません。

どんな助けでも本当に感謝しています。私はこれで一日を失いました。

4

2 に答える 2

0

この配列から$tokenパラメーターを削除してみてください

$facebook->api("/$pageId/feed", 'post', array(           
    **'access_token' => $token,**
    'link' => 'http://www.example.com'
));

POST API呼び出しの前に、この方法でトークンを設定します

$facebook->setAccessToken($token);

それがどのように行われたか教えてください

于 2012-06-28T23:27:10.217 に答える
0

私の質問は、アプリケーションがフィードに公開することをどのように承認すればよいのでしょうか? アプリに設定が表示されず、ページにアクセス許可を「追加」する方法がないようです。

最初にアクセス トークンを取得する必要があります。ユーザー アクセス トークン(有効期限が長いものは 60 日後に期限切れになるため、定期的にアプリに戻って更新する必要があります)、またはページ アクセス トークン(そうではありません) を取得する必要があります。 t はデフォルトで期限切れになります)。また、投稿するために必要な許可を求める必要があります(ユーザーに代わって行動する場合)。

それらを取得するには、認証フローを実行する必要があります。すべての詳細は、https ://developers.facebook.com/docs/authentication/ で説明されています。

また、API の使用にまだあまり慣れていない場合は、 Graph API Explorerも役立つかもしれません。ここでは、さまざまな種類のリクエストを作成したり、結果やエラーを確認したりできます。また、そこでユーザー アクセス トークンを生成できます (アプリで自分で何をする必要があるかを理解するため)。

于 2012-06-29T07:53:36.647 に答える