2013-02-17 109 views

回答

1

假设您拥有publish_stream权限,您可以通过发出HTTPPOST请求到POST_ID/likes连接来发帖。

javascript sdk,你可以这样做

FB.api("/POST_ID/likes", 'post',function(response) { 
    if (!response || response.error) { 
    alert('Error occured'); 
    } else { 
    alert('successfully, liked the post!'); 
    } 
}); 
0

不同的网页,你可以不喜欢按钮添加一个Facebook 一个Android应用程序。我不确定这是否可以在WebView中完成。但是,您可以通过使用“POST”或“DELETE”查询来Facebook帖子中添加该函数:

这是一个正在运行的例子切换类似帖子的状态在我的应用程序中:

注意:此代码适用于较旧的v2.x SDK。所以,你需要适应一些东西,特定于最新的3.x版SDK

在onClickListener将用于发布/删除像,运行这段代码:

try { 
    String query = "SELECT user_likes FROM stream WHERE post_id= \'" 
      + THE_POST_ID + "\'"; 
    Bundle params = new Bundle(); 
    params.putString("method", "fql.query"); 
    params.putString("query", query); 
    String fqlResponse = Utility.mFacebook.request(params); 

    JSONArray JALikes = new JSONArray(fqlResponse); 

    for (int j = 0; j < JALikes.length(); j++) { 
     JSONObject JOTemp = JALikes.getJSONObject(j); 

     if (JOTemp.has("user_likes")) { 
      String userLikeStatus = JOTemp.getString("user_likes"); 
      if (userLikeStatus.equals("true")) { 

       try { 
        Bundle parameters = new Bundle(); 
        Utility.mFacebook.request("POST_ID/likes", parameters, "DELETE"); 

        // SHOW THE "LIKE" IS REMOVED 
       } 
       catch(Exception e) { 
        e.printStackTrace(); 
       } 
      } else if (userLikeStatus.equals("false")) { 
       try { 
        Bundle parameters = new Bundle(); 
        Utility.mFacebook.request("POST_ID/likes", parameters, "POST"); 

        // SHOW THAT THE POST IS NOW "LIKED" 
       } 
       catch(Exception e) { 
        e.printStackTrace(); 
       } 

      } 
     } 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

在代码的第一部分(for loop之前),我检查当前状态,如果登录用户喜欢帖子。基于结果(for loop),我要么删除Like或我发布Like。

尽管它是一个较老的SDK,但代码仍然有效,只需稍作修改(如有必要)就可以正常工作。