0

首先,我可以登录我的 facebook,并且我已经将访问令牌保存在SharedPreferences.

但是,当我尝试使用此代码时:

JSONObject json_data = null;
try    
{
    JSONObject response = Util.parseJson(new Facebook(Define.APP_ID).request("me/friends"));

    JSONArray jArray = response.getJSONArray("data");

    json_data = jArray.getJSONObject(0);
    String name = json_data.getString("name");


}
catch (MalformedURLException e)
{
    e.printStackTrace();
}
catch (JSONException e)
{
    e.printStackTrace();
}
catch (IOException e)
{
    e.printStackTrace();
}
catch (FacebookError e)
{
    e.printStackTrace();
}

我收到错误“必须使用活动访问令牌来查询有关当前用户的信息”。

我该怎么办?我已经有了访问令牌。

4

2 回答 2

0

你不应该Facebook直接从 Object 发出任何请求。您必须先创建Facebook对象,然后设置AccessToken到期时间,然后执行以下请求。

FaceBook fb = new FaceBook(APP_ID);

fb.setAccessToken("youraccesstoken");
fb.setAccessExpires(expires);//expires is your milliseconds time.

然后你做你的请求fb.request("me/friends");

您在没有经过有效身份验证的会话的情况下请求信息。所以你得到了那个错误。进行身份验证并设置访问令牌,然后就没有问题了

于 2013-02-01T08:53:15.863 回答
0

使用 Facebook SDK for Android 3.0 为您处理几乎所有事情不是更好吗?类中的方法executeMyFriendsRequestAsync(Session session, Request.GraphUserListCallback callback)Request在回调中返回您的朋友列表。这是入门指南:https ://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0 。如果您使用本指南中的示例代码并更改执行的请求类型,您将获得与您尝试在您提供的代码中获得的相同信息。

于 2013-02-01T09:06:08.343 回答