2012-04-12 31 views
0

我使用的JavaScript SDK發佈比分FB,但它給我的錯誤({錯誤:{消息:「(#15)這種方法必須調用的應用程序的access_token 「鍵入:」 OAuthException」,代碼:15}}):Facebook上的JavaScript SDK - 無法發佈得分

我使用的accessToken從下面來:

FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
     // the user is logged in and has authenticated your 
     // app, and response.authResponse supplies 
     // the user's ID, a valid access token, a signed 
     // request, and the time the access token 
     // and signed request each expire 
     uid = response.authResponse.userID; 
     accessToken = response.authResponse.accessToken; 

我使用後分數的功能如下:

FB.api("uid/scores", 'post', {score: scoredata, access_token: accessToken }, 
      function(response) 
     { 
      if (!response || response.error) { 
       console.error(response); 
      } else { 
       console.log(response); 
      } 
     }); 

任何人都可以請給出主意,因爲FB是特別爲JAvascript缺少文檔。

雅各

回答

0

這是因爲事實分數應該張貼應用程序而不是用戶。

你想幹什麼應該使用Application access_token和服務器端(不是在JavaScript的瀏覽器)使您的應用程序的祕密不會泄露做些什麼。

+0

不,這不是因爲那樣。 – 2016-01-02 18:46:05

0

對於發佈使用用戶訪問令牌,你不需要通過訪問令牌在此調用了在Facebook上的遊戲分數,它的工作太多,但不是必需的。 您的代碼錯誤是FB.api必須在/在'之前調用,並且我認爲您需要使用ME而不是用戶標識。

FB.api('/me/scores/', 'post', { scores: score }, function(response) { 
    if(response.error) { 
     console.error('Failed',response); 
    } else { 
     console.log('Posted', response); 
       }  
    }); 

您需要publish_actions許可發佈和這將始終建立新的分值,只適用於高分數,如果你的代碼..獲取用戶的分數,使用user_game_activities和使用JavaScript來比較值,然後發佈,如果新的價值更大。

您還可以設置使用App令牌,使用非常不同的呼叫高分。 我一直在使用這個保存在投幣機遊戲用戶積分,我發現可以保存和獲取分數多次保持更新和保存的兩個或兩個以上的遊戲會話之間。 我也有實時的Facebook遊戲得分排行榜,它也可以在沒有應用程序訪問令牌的情況下運行,因爲它的相關性,並且只顯示你的朋友分數。

那如何我這樣做,我喜歡它,Facebook平臺是真棒。

Realtime Facebook Game Scores Leaderboard

相關問題