在我的项目中,我在第一个活动中验证了我的Facebook帐户,并检索了当天生日的朋友ID,姓名,生日和照片。我将它们捆绑到下一个活动中,并在listview中显示图片和名称。当我点击列表时,我想将一些消息发布到他们的墙上。我使用以下代码在朋友墙上发布,同时点击列表视图。
public static String APP_ID = "my_app_id";
public static Facebook authenticatedFacebook = new Facebook(APP_ID);
在我的listview onclickitemlistner中,我使用了以下代码。 id_list是一个包含朋友的ID的ArrayList。
try{
Bundle parameters = new Bundle();
JSONObject attachment = new JSONObject();
try {
attachment.put("message", "Many more returns of the day");
} catch (JSONException e) {
}
parameters.putString("attachment", attachment.toString());
parameters.putString("target_id", id_list.get(position));
parameters.putString("method", "stream.publish");
String response = authenticatedFacebook.request(parameters);
Log.v("response", response);
}
catch(Exception e){}
在我的回复中,我获得了无效的API密钥。但是我使用了正确的密钥。
11-10 16:21:53.987: V/response(396): {"error_code":101,"error_msg":"Invalid API key","request_args":[{"key":"method","value":"stream.publish"},{"key":"attachment","value":"{\"message\":\"Many more returns of the day\"}"},{"key":"format","value":"json"},{"key":"target_id","value":"100000635832872"}]}
我使用相同的代码在我的第一个活动中使用检索到的朋友ID进行发布,我在其中验证了我的帐户。它工作正常。但是在我在listview中显示它们的第二个活动中不起作用。我检查了会话是否有效。它导致无效。
答案 0 :(得分:0)
您是否拥有用户访问令牌?在您提出请求时,我没有看到任何迹象表明您有经过身份验证的用户
答案 1 :(得分:0)
我明白了。只需更改Facebook.java类。将DEFAULT_AUTH_ACTIVITY_CODE更改为FORCE_DIALOG_AUTH。并检查Facebook会话。它适用于我的代码。