2011-11-10 67 views
0

在我的项目中,我在第一次活动中验证了我的Facebook帐户,并检索了当天有生日的朋友ID,姓名,生日和照片。我将它们捆绑到下一个活动并在列表视图中显示图片和名称。当我点击列表时,我想发布一些消息到他们的墙上。我用下面的代码在单击listview的同时发布在朋友墙上。发布在朋友的脸书上

public static String APP_ID = "my_app_id"; 
     public static Facebook authenticatedFacebook = new Facebook(APP_ID); 

在我的ListView onclickitemlistner我用下面的代码。 id_list是一个ArrayList,包含好友的ID。

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

我认为你的朋友不允许应用在墙上发表评论。那是不是? 难道你不记得一个对话框出现在FB中,询问用户他允许应用程序访问数据吗? – Arslan

+0

然后如何张贴在他的墙上。建议我怎么做到这一点。 – Manikandan

+0

我在活动中尝试了相同的代码,在那里我用于验证我的帐户。它工作正常,并且信息会发布到我朋友的墙上。我认为问题在于会议。 – Manikandan

回答

0

我明白了。只需更改Facebook.java类。将DEFAULT_AUTH_ACTIVITY_CODE更改为FORCE_DIALOG_AUTH。并检查Facebook会话。它与我的代码正常工作。

0

你有用户访问令牌吗?我没有看到任何迹象表明,当你提出这个请求时,你有一个经过验证的用户可用

+0

其实我已经在第一次活动中验证了我的Facebook帐户,并检索了朋友ID,图片,生日。检查是否有朋友在当前日期有生日。如果是这样,将该朋友的详细信息捆绑到另一个活动,我将它们列在一个列表视图中。 – Manikandan

+0

您是否拥有该用户的publish_stream权限?错误消息通常意味着存在格式错误的访问令牌或类似 – Igy

+0

我在活动中的权限[]中添加了public_stream,这会对我的帐户进行身份验证。 – Manikandan