2013-02-01 79 views
0

首先,我可以登录我的Facebook,我已经在SharedPreferences中保存访问令牌。Access token需要做些什么?

然而,当我尝试这种代码:

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

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

+0

非常感谢,我试过这种方法,我可以找回我所有的朋友。但我可以从朋友检索一些数据,如姓名,ID,用户名。我怎样才能从这种方法获得更多的数据? – barssala

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");

你的请求没有有效的身份验证会话的信息。所以你得到这个错误。做身份验证并设置访问令牌,那么你没有问题

+0

对不起,我仍然有同样的问题。这意味着我得到了错误的访问令牌,不是吗? – barssala

+0

@barssala我希望你没有正确保存accesstoken?请检查并更新您在代码中给出的代码,否则查看者可能会认为错误是您没有设置访问权限。但我希望我的代码能够工作,因为我做到了。 – TNR

+0

你的意思是,当我保存我的访问令牌时,我必须向你展示我的'SharedPreferences'。我对吗? – barssala

相关问题