0

ソリューションの編集: PHP SDKを使用して正しいアプリトークンを返すことはできません。また、開発者サイトの[アプリ]セクションでOpenGraphオプションを押して、[コードを取得]をクリックし、そこからアプリアクセストークンを取得することもできません。 。これを行う必要があります:

$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $fbConfig['appId'] . '&client_secret=' . $fbConfig['appSecret'] . '&grant_type=client_credentials';
$accessToken = explode('=',file_get_contents($token_url));
$accessToken = $accessToken[1];

元の問題: PHP SDKを使用して、実績の登録に失敗しました。次のエラーが発生し続けます:「このメソッドはアプリaccess_tokenで呼び出す必要があります。」

ただし、使用しているトークンをopengraph(https://graph.facebook.com/app?access_token=ACCESS_TOKEN)に入力すると、アプリ情報が正しく取得されます。

これまでに実績を登録するために試した方法は次のとおりです。

$param = array(
    'access_token' => $accessToken,
    'achievement' => 'http://domain.com/path/to/my/achievement/page',
    'display_order' => $achievements['achievementWeight']
);
$achievement = $fb->api('/'.$this->CI->config->item('app_id').'/achievements', 'POST', $param);

$superCurl = "curl -F 'achievement=" . $achieveUrl . "&access_token=" . $accessToken . "' https://graph.facebook.com/" . $appId . "/achievements";
exec($superCurl,$result);


$url = 'https://graph.facebook.com/' . $this->CI->config->item('app_id') . '/achievements?access_token=' . $accessToken;
$c = curl_init ($url);
curl_setopt($c, CURLOPT_HEADER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $param);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
if(curl_errno($c)){
    $this->CI->firephp->log(curl_error($c));
}
$page = curl_exec ($c);
curl_close ($c);

access_tokenが必要だと言って、すべてが常に戻ってきます。

4

1 に答える 1

0

アプリとしての認証ドキュメントを参照してください-アプリの代わりに動作できるようにするアプリのアクセストークンを使用する必要があります-この場合(および他のいくつかの場合)、ユーザーアクセストークンでは不十分です

于 2012-04-04T22:06:14.897 に答える