Facebook OAuthException:格式错误的访问令牌ErrorCode 190

时间:2014-07-08 16:44:14

标签: java android facebook oauth

我一直在与这个问题作斗争几个小时,我似乎无处可去。所以,我已成功要求用户使用Facebook登录我的Android应用程序。

一旦他们登录,我就会获得访问令牌(字符串值),然后使用它来向Facebook发送请求以获取页面的帖子。以下是我如何完成整个过程。

public void setupFacebook()
{
    Session.openActiveSession(this, true, new Session.StatusCallback()
    {

        // callback when session changes state
        @Override
        public void call(Session mSession, SessionState state, Exception exception) {


            if (mSession.isOpened() && mSession != null)
            {
                facebookAccessToken = mSession.getAccessToken();

                Log.d("ACCESSTOKEN", facebookAccessToken);

                fetchPagePosts(facebookAccessToken, mSession);
            }
        }
    });
}

 public  void fetchPagePosts(String token, Session session)
{
    Request.Callback callback = new Request.Callback()
    {
        @Override
        public void onCompleted(Response response)
        {
            Log.d("RESPONSE", "ERROR"+response.getError());
            Log.d("RESPONSE", ""+response);
        }
    };

    String endpoint = String.format("https://graph.facebook.com/"+pageId+"/posts?access_token=%s", facebookAccessToken);

    Log.d("ENDPOINT", endpoint);

    Request request = new Request(session, endpoint,  null, HttpMethod.GET, callback);

    RequestAsyncTask task = new RequestAsyncTask(request);
    task.execute();
}

这里有趣的部分是,当我从我的Logcat(我称之为端点)复制url并粘贴到我的浏览器时,它完全正常。

当我在平板电脑上运行我的代码时,它会返回 ErrorCode 190 HttpStatus 400

根据Facebook的文档,它可能是几件事之一;

  1. 访问令牌无效
  2. 已过期
  3. 用户已更改密码或
  4. 用户已退出帐户
  5. 用户已撤消您应用对其帐户的访问权限!
  6. 我被困在这里,因为我在浏览器上测试了相同的URL,它返回了我需要的json数据。它只是在Android代码中运行时失败。

    如果有人有任何建议,请帮助我 - 真的很感谢你的帮助。

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Simple Facebook Android库而不是Facebook SDK https://github.com/sromku/android-simple-facebook,它更简单。