严重疯狂......
我正在尝试使用android的flashgap facebook插件工作,但它真的让我起了作用(没有双关语)。
我正在使用https://github.com/irnc/phonegap-plugin-facebook-connect/tree/oauth-2.0+irnc中的代码,至少我认为我是。
我似乎有两个问题:
登录中的以下回调(来自pg-plugin-fb-connect)给出错误,因为“FB.Auth.setAuthResponse(response.authResponse,response.status);”无法找到。我使用的是不正确的facebook sdk吗? 显然不会,请参阅下面的编辑
PhoneGap.exec(function (response) {
console.log('PG.FB.login.success: ' + JSON.stringify(response) + ', store into localStorage ...');
localStorage.setItem(key, JSON.stringify(response));
FB.Auth.setAuthResponse(response.authResponse, response.status);
if (cb) {
cb(response);
}
}, null, service, 'login', ['publish_stream', 'read_stream']);
},
当我评论 FB.Auth.setAuthResponse(response.authResponse,response.status); 语句时,我的登录成功返回!我得到一个authresponse,其accessstoken和status设置为connected。当我尝试执行以下代码时(成功回调)
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
console.log(JSON.stringify(response.error, null, 4));
alert('We are very sorry, but somthing went wrong');
} else {
alert('Message was successfully posted to your wall!');
}
});
它给我一个oauthexception消息:“必须使用活动访问令牌来查询有关当前用户的信息。”
我使用'read_stream,publish_stream'权限进行了身份验证。
这两个可能是相关的,但我在facebook api中找不到关于setAuthReponse调用的任何内容。
编辑帮助显然不是它的方式,但我继续寻求让它发挥作用。
我从github repo获得的facebook js sdk都使用'旧'auth方法。我已经下载了新的facebook js sdk和FB.Auth.setAuthResponse。我将代码复制到现有的js sdk,并将对setSession的所有调用更改为setAuthRepsonse。一切都运行正常,只是当我在FB.api上面调用时,访问令牌似乎没有发布。在这些更改后,错误仍然完全相同!
哦,是的,我还更改了登录回调中的检查以检查authResponse而不是会话(在示例中)。
非常欢迎帮助, rinze
答案 0 :(得分:0)
我想我已经修好了。基本上,ConnectPlugin.java仍然返回一个“会话”响应对象,而不是新SDK期望的“authResponse”。