首先,我可以登录我的脸书,我已经在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();
}
我收到错误“必须使用活动访问令牌来查询有关当前用户的信息”。
我该怎么办?我已经有了访问令牌。
答案 0 :(得分:0)
你不应该直接从Facebook
对象做任何请求。您必须先创建Facebook
对象,然后设置AccessToken
,到期时间,然后执行以下请求。
FaceBook fb = new FaceBook(APP_ID);
fb.setAccessToken("youraccesstoken");
fb.setAccessExpires(expires);//expires is your milliseconds time.
然后您以fb.request("me/friends");
您在没有经过有效身份验证的会话的情况下请求信息。所以你得到了那个错误。进行身份验证并设置访问令牌,然后您就没有问题了
答案 1 :(得分:0)
使用适用于Android 3.0的Facebook SDK更好,它可以为您处理几乎所有内容。来自executeMyFriendsRequestAsync(Session session, Request.GraphUserListCallback callback
类的方法Request
)返回回调中的朋友列表。以下是入门指南:https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0。如果您使用本指南中的示例代码并更改执行的请求类型,您将获得与您提供的代码相同的信息。