Facebook Android SDK 4.0:newGraphPathRequest returns "An active access token must be used to query information about the current user."
Facebook Android SDK 4.0: newGraphPathRequest returns "An active access token must be used to query information about the current user."
我已经升级到 Facebook Android SDK 4.0。我正在尝试请求图形路径:
AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest req = GraphRequest.newGraphPathRequest(token,
"me?fields=name,picture.width(400).height(400)",
new GraphRequest.Callback() { ... });
我已经跨过代码并验证 token
是一个完全有效的访问令牌,我已经在 Graph API Explorer 中复制并调试它并且它是有效的。我还尝试通过使用相同的令牌将 me?fields=name,picture.width(400).height(400)
复制粘贴到 Graph API Explorer 来请求完全相同的路径,并且它有效。
然而,当我执行请求时:
req.executeAsync();
我在完成处理程序中收到此错误:
{"error":{"type":"OAuthException","message":"An active access token must be
used to query information about the current user.","code":2500}}
我做错了什么?
找到问题了。我已将查询字符串参数更改为捆绑参数并将它们从 URL 中删除。有效。在我真正习惯的iOS SDK中,没有这个问题。反正。这是解决方案:
从URL中删除参数:GraphRequest req = GraphRequest.newGraphPathRequest(token, "me" ...);
将它们添加为捆绑包。
示例:
Bundle parameters = new Bundle();
parameters.putString("fields", "name,picture.width(400).height(400)");
req.setParameters(parameters);
成功了。
我已经升级到 Facebook Android SDK 4.0。我正在尝试请求图形路径:
AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest req = GraphRequest.newGraphPathRequest(token,
"me?fields=name,picture.width(400).height(400)",
new GraphRequest.Callback() { ... });
我已经跨过代码并验证 token
是一个完全有效的访问令牌,我已经在 Graph API Explorer 中复制并调试它并且它是有效的。我还尝试通过使用相同的令牌将 me?fields=name,picture.width(400).height(400)
复制粘贴到 Graph API Explorer 来请求完全相同的路径,并且它有效。
然而,当我执行请求时:
req.executeAsync();
我在完成处理程序中收到此错误:
{"error":{"type":"OAuthException","message":"An active access token must be
used to query information about the current user.","code":2500}}
我做错了什么?
找到问题了。我已将查询字符串参数更改为捆绑参数并将它们从 URL 中删除。有效。在我真正习惯的iOS SDK中,没有这个问题。反正。这是解决方案:
从URL中删除参数:
GraphRequest req = GraphRequest.newGraphPathRequest(token, "me" ...);
将它们添加为捆绑包。
示例:
Bundle parameters = new Bundle();
parameters.putString("fields", "name,picture.width(400).height(400)");
req.setParameters(parameters);
成功了。