首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook类似于使用post id的帖子

Facebook类似于使用post id的帖子
EN

Stack Overflow用户
提问于 2013-02-18 02:45:32
回答 2查看 348关注 0票数 0

我在Facebook上创建了一个帖子,并收到了帖子id。现在我想创建一个like button链接到我的帖子,这样当点击Like时,用户就会喜欢他的帖子。

有可能吗?那我怎么使用JavaScript或者使用Android-Facebook sdk3呢?

EN

回答 2

Stack Overflow用户

发布于 2013-02-18 03:18:21

假设您拥有publish_stream权限,您可以通过向POST_ID/likes connection发出HTTP POST请求来喜欢post。

使用javascript sdk,您可以执行以下操作

代码语言:javascript
复制
FB.api("/POST_ID/likes", 'post',function(response) {
    if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('successfully, liked the post!');
  }
});
票数 1
EN

Stack Overflow用户

发布于 2013-02-18 03:24:01

与网页不同的是,你不能在安卓应用上添加Facebook的Like按钮。我不确定这是否可以在WebView中完成。但是,您可以通过对Facebook API使用" post“或"DELETE”查询来添加函数来喜欢POST:

下面是我如何在我的应用程序中切换帖子的Like状态的一个功能示例:

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

在你将用来发布/删除一个Like的onClickListener上,运行这段代码:

代码语言:javascript
复制
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,但代码仍然有效,并且只需进行一些修改(如果需要)就可以正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14924688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档