Facebook赞一个使用帖子ID的帖子

时间:2013-02-17 18:45:32

标签: android facebook

我在Facebook上创建了一个帖子并收到了帖子ID。现在我想创建一个like button,其中包含我的帖子的URL,所以当点击“赞”时,用户会喜欢他的帖子。

有可能吗?我如何JavaScript或使用Android-Facebook sdk3?

2 个答案:

答案 0 :(得分:1)

如果您HTTP获得POST权限,则可以向POST_ID/likes publish_stream个用户发送javascript sdk FB.api("/POST_ID/likes", 'post',function(response) { if (!response || response.error) { alert('Error occured'); } else { alert('successfully, liked the post!'); } }); 个请求。

使用{{1}},您可以执行类似

的操作
{{1}}

答案 1 :(得分:0)

与网页不同,您无法在Android应用中添加Facebook 按钮。我不确定这是否可以在WebView中完成。但是,您可以通过对Facebook API使用“POST”或“DELETE”查询将函数添加到Like a post:

以下是我在应用程序中切换帖子的状态所做的工作的一个功能示例:

注意:此代码适用于较旧的v2.x SDK。因此,您需要调整一些特定于最新v3.x SDK的内容

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

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 之前),如果登录用户喜欢Post,我会检查当前状态。根据结果​​(for loop 中的),我要么删除赞,要么我发布赞。

虽然它是较旧的SDK,但代码仍然有效,只需进行一些修改(如果需要)就可以了。