2011-10-19 53 views
1

我在測試應用程序上測試了api分數。如何解決'必須使用應用程序access_token調用此方法'錯誤?

所以...我已經用我的應用程序擁有以下權限。

publish_stream, 
publish_actions, 
user_status, 
user_photos 

登錄後,我請求下列API在PHP

$loggedUser = $Facebook->getUser(); 
$scoreUpdate = $Facebook->api('/'.$loggedUser."/scores", 'post', array('score'=> 100)); 

我碰到下面的錯誤。

This method must be called with an app access_token

所以,我查了一下該SDK是發送給Facebook,我已經證實,它正在發送和我一起PARAMS「ACCESS_TOKEN」。

這種情況下的問題是什麼?

回答

2

現在有兩個令牌,一個用戶令牌......和一個Application token。你需要更晚。

現在PHP-SDK會追加用戶access_token如果它發現一個是我認爲你的情況。我建議你讀了官方的Facebook從我tutorial採取how-to for publishing scores

例子:

$APPLICATION_ID = "APP_ID"; 
$APPLICATION_SECRET = "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); 
+1

// ah..yes!這是問題所在。是否有可能使用facebook php sdk獲取應用程序令牌? stackoverflow刪除@ifaour莫名其妙... – Moon

+0

嗯,我不知道是否授予'manage_pages',然後調用'我/帳戶',並獲得應用程序'access_token'將是相同的,但這將是很多工作只是爲了這個。你最後一句話是什麼意思? – ifaour

+0

//我感謝您的回答。啊...不理我最後一句話...我用「@ifaour」,但是stackoverflow不斷從我的評論中刪除它。順便說一下,你的網站是veeerrrrry有幫助的 – Moon

5

應用的access_token你可以簡單使它像這樣:

$facebook->api('/me/scores', 'POST', array( 'score' => 100, 'access_token' => $facebook->getAppId().'|'.$facebook->getApiSecret() ));

2
$ret_obj = $fb->api('/' . $fb->getUser() . '/scores', 'POST', array(
    'score' => 100, 
    'access_token' => $fb->getAppId().'|'.$fb->getApiSecret() 
)); 

如果您在access_token參數中指定應用程序訪問令牌,最終將失去使用/ me的能力,因此您必須具體說明用戶ID。否則會出現此錯誤:「OAuthException:必須使用活動訪問令牌來查詢有關當前用戶的信息」,如下所述:facebook Uncaught OAuthException: An active access token must be used to query information about the current user

相關問題