我正在尝试通过Java(Android)在Facebook上进行图谱API调用。
这是请求
new Request(
session,
"/me/taggable_friends?fields=name,picture.type(normal)",
null,
HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {
}
}
).executeAsync();
第一个错误是以下
07-13 18:23:19.871: Facebook Request(3884): {Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 2500, errorType: OAuthException, errorMessage: An active access token must be used to query information about the current user.}, isFromCache:false}
要解决此错误,我以这种方式明确地将请求令牌放在请求上
new Request(
session,
"/me/taggable_friends?fields=name,picture.type(normal)&access_token=" + session.getAccessToken(),
null,
HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {
/* handle the result */
Log.d("Facebook Request Friends", response.toString());
}
}
).executeAsync();
并将此错误返回给我
07-13 18:26:14.624: Facebook Request(4005): {Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 190, errorType: OAuthException, errorMessage: Malformed access token CAATukWchF0IBAEgpzi4aywNlkkieqVXbrshYhtx6mrrJiDxLIWOVI6623uA4x5ZBpwoTjyxWZArLgzHgF2nu9zZAwrnGx5kojCqWrvaj2HMPZCrqq2M2OH828IsZAxTRsdCQecJaH1mgCZBRls7BZASh96F9oDVKBdLrxqZAQkmFoFetGwCZABaXkT9jjIZD?access_token=CAATukWchF0IBAEgpzi4aywNlkkieqVXbrshYhtx6mrrJiDxLIWOVI6623uA4x5ZBpwoTjyxWZArLgzHgF2nu9zZAwrnGx5kojCqWrvaj2HMPZCrqq2M2OH828IsZAxTRsdCQecJaH1mgCZBRls7BZASh96F9oDVKBdLrxqZAQkmFoFetGwCZABaXkT9jjIZD}, isFromCache:false}
我的access_token格式错误,但是取自getAccessToken()。
我不明白为什么我的访问令牌在logcat中写了两次,如你所见。 像[ACCESS_TOKEN]?access_token = [ACCESS_TOKEN] ??
我还尝试在logcat中打印getAccessToken()的结果并且是正确的。
Facebook应用已配置,权限可以,并且在Graph API Explorer中使用相同的access_token!
是否可以在请求中以其他方式指定访问令牌?
我不知道如何解决这个问题,我希望你这样做。
感谢您的建议。