用于android的Phonegap facebook插件给了我一个oauthexception

时间:2012-02-27 17:18:37

标签: android facebook facebook-graph-api plugins cordova

严重疯狂......

我正在尝试使用android的flashgap facebook插件工作,但它真的让我起了作用(没有双关语)。

我正在使用https://github.com/irnc/phonegap-plugin-facebook-connect/tree/oauth-2.0+irnc中的代码,至少我认为我是。

我似乎有两个问题:

  1. 登录中的以下回调(来自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']);
    },
    
  2. 当我评论 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!');
    }
    });
    
  3. 它给我一个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

1 个答案:

答案 0 :(得分:0)

我想我已经修好了。基本上,ConnectPlugin.java仍然返回一个“会话”响应对象,而不是新SDK期望的“authResponse”。

有关详细信息,请参阅https://github.com/odbol/phonegap-plugin-facebook-connect/commit/0ef84e29603338930ff82fc6d6ef8525b668077d