我正在使用Javascript SDK将分数发布到FB,但它给了我错误({error:{message:“(#15)必须使用app access_token调用此方法。”,键入:“OAuthException”,代码:15}}):
我使用来自以下的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 :(得分:0)
这是因为分数应该作为应用而不是用户发布。
您尝试做的事情应该使用Application access_token
和服务器端(不是浏览器中的JavaScript)来完成,这样您的应用程序密钥就不会泄露。
答案 1 :(得分:0)
要使用用户访问令牌在Facebook游戏上发布分数,您不再需要在此调用中传递访问令牌,它也可以工作,但不是必需的。 代码中的错误是必须在'之后/之后调用FB.api。在我之前,我认为你需要使用ME而不是用户ID。
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 Token设置高分,使用非常不同的呼叫。 我一直在使用它来保存老虎机游戏中的用户积分,我发现可以多次保存和获得分数以保持更新并在两个或更多游戏会话之间保存。 我也有实时的Facebook游戏得分排行榜,它也没有应用程序访问令牌,因为它的相关性,只显示你的朋友分数。
多数民众赞成我是如何做到的,我喜欢它,Facebook平台很棒。