0

我创建了一个 android 应用程序来显示来自facebook. 我想要做的是实现like按钮。我拥有所有必要的数据(Facebook 令牌、用户 ID、应用 ID 等)和我需要的用户许可。

圈号1是评论的内容
圈号2是用户的名称
圈号3是我要实现的点赞按钮
圈号4是评论发送的时间

在此处输入图像描述

我使用此链接获取评论: https ://graph.facebook.com/568609876496765/comments

它返回一个JSON我用短语表达的对象并获取数据并将其显示在List View.

提前致谢。

4

1 回答 1

1

与网页不同,您不能将 Facebook Like按钮添加到 Android 应用程序。但是,您可以通过对 Facebook API 使用“POST”或“DELETE”查询将该功能添加到喜欢帖子(在您的情况下为评论):

这是我在应用程序中切换评论的点赞状态的完整功能示例:

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

在您将用于发布/删除 Like 的 onClickListener 上,运行以下代码:

try {
    String query = "SELECT user_likes FROM comment WHERE post_id= \'"
            + THE_COMMENT_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(arrayComments.get(position).getCommentID() + "/likes", parameters, "DELETE");

                    // CHANGE THE TEXT OF THE WIDGET TO SHOW THE TOGGLED STATE
                }
                catch(Exception e)  {
                    e.printStackTrace();
                }
            } else if (userLikeStatus.equals("false")) {
                try {
                    Bundle parameters = new Bundle();
                    Utility.mFacebook.request(arrayComments.get(position).getCommentID() + "/likes", parameters, "POST");

                    // CHANGE THE TEXT OF THE WIDGET TO SHOW THE TOGGLED STATE
                }
                catch(Exception e)  {
                    e.printStackTrace();
                }

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

在代码的第一部分(在 之前for loop),如果登录用户喜欢评论,我会检查当前状态。根据结果​​(在 中for loop),我要么删除赞,要么发布赞。

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

于 2013-02-07T11:23:02.350 回答