2011-09-09 3 views
0

登録しようとしている間、OAuthException(#15) "このメソッドは必ずアプリケーションのaccess_tokenで呼び出さなければなりません"以下の方法で私のアプリの達成:OAuthException(#15) "このメソッドは、アプリケーションのaccess_tokenで呼び出す必要があります"

FB.api("/APP_ID/achievements", 
'post', 
{achievement: FULL_ACHIEVEMENT_URL, access_token: ACCESS_TOKEN, display_order: 1}, 
function(response){ 
    getFlashMovieObject(referrer).fbDataCallback(response); 
}); 

達成ファイル構造を検証し、正しいことをされた、access_tokenは値があまりにもOKです - 私は私が登録した成果を格納する配列を受け取る「取得」にHTTPメソッドを変更した場合。

JS APIメソッドを使用して成果を正しく登録する方法を教えてください。

+0

あなたが望みを達成しましたか? –

+0

http://stackoverflow.com/questions/9814517/this-method-must-be-called-with-an-app-access-token –

答えて

0

javascript SDKなどのクライアントSDKからアプリアクセストークンを必要とするメソッドを呼び出すことはできません。 Javascript SDKは、常にAPI呼び出しのために暗黙的にユーザーアクセストークンを送信します。これはセキュリティ上の理由によるものです。

これが役に立ちます

+0

これは原因ではないようです - 上記のように、同じアクセストークンを必要とすると、実際のデータが正常に返されます。 –

+0

「get」リクエストは、業績を単純にリストアップする方法とは異なり、制限の少ない(アプリのアクセストークンを必要としない)方法です。 –

+0

「get」リクエストの制限については正しいですが、実際には、access_token変数が渡されない場合にJS API呼び出しのパラメータにユーザーアクセストークンが追加されます。私は私のアプリのアクセストークンを渡し、スニファはそれが外出するものであることを証明します。 –

0

答えがないようです。

注:それぞれのメソッドを指定していても(私が行ったように)スニッファにPOSTリクエストが表示されることは期待しないでください。 FB.api()を呼び出している間に値を取得できます。これは強制的な回避策であり、動作します。

0

この問題に対する私の解決策は、PHPでAPPアクセストークンを取得し、ポストオブジェクトの一部としてそのトークンを渡すことでした。 USERアクセストークンは機能しません。

外部インターフェイスからJavascript SDKを使用するFlashゲーム用にこれを行う必要がありました。セキュリティの問題であるアプリの秘密を明らかにするため、Javascriptでアプリのアクセストークンを取得することはできません。

<?php 

$APPLICATION_ID = YOUR_APP_ID; 
$APPLICATION_SECRET = YOUR_APP_SECRET; 

$token_url = "https://graph.facebook.com/oauth/access_token?" . 
     "client_id=" . $APPLICATION_ID . 
     "&client_secret=" . $APPLICATION_SECRET . 
     "&grant_type=client_credentials"; 
$app_token = file_get_contents($token_url); 

?> 
関連する問題