implement facebook like button

我怕爱的太早我们不能终老 提交于 2019-12-12 06:22:05

问题


I created an android app to show comments of certain post from facebook. what I want to do is to implement the like button. I have all the necessary data (facebook token, user id, app id etc.) and permission i need from the user.

circle number 1 is the content of the comment
circle number 2 is the name if the user
circle number 3 is the like button that i want to implement
circle number 4 is the time that the comment sent

I use this link to get the comments: https://graph.facebook.com/568609876496765/comments

it returns a JSON Object that i phrase and get the data and show it in a List View.

Thanks in advance.


回答1:


Unlike webpages, you cannot add a Facebook Like button to an Android app. However, you can add the function to Like a post (a Comment in your case) by using "POST" or a "DELETE" query to the Facebook API:

Here is a complete functioning example of what I do to Toggle the Like Status of a Comment in my application:

NOTE: This code is for the older v2.x SDK. So you will need to adapt a few things that are specific to the latest v3.x SDK

On the onClickListener you will use to post / remove a Like, run this piece of code:

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();
}

In the first part of the code (before the for loop), I check the current status if the Logged in user likes the Comment. Based on the result (in the for loop), I either remove the Like or I post a Like.

Although it is an older SDK, the code is still valid, and with a few modifications (if necessary) will work just fine.



来源:https://stackoverflow.com/questions/14749739/implement-facebook-like-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!