Android 获取当前用户喜欢的帖子状态

Android 获取当前用户喜欢的帖子状态,android,facebook,facebook-graph-api,facebook-fql,facebook-android-sdk,Android,Facebook,Facebook Graph Api,Facebook Fql,Facebook Android Sdk,我已经能够使用“me/home”图形API调用为登录用户拉取Facebook新闻提要,并在活动中显示结果 现在我已经尝试了很多方法来查询帖子的like列,并检查当前用户是否喜欢帖子来显示状态。本质上,我设置了一个drawable来表示用户喜欢一篇文章 我真的无法发布我迄今为止尝试过的任何代码,因为它们都不起作用。相信我,我已经尝试了很多方法 如果有人能至少给我指出正确的方向,我将不胜感激 编辑:这是我最近一次尝试查询likes列并将结果与当前用户的ID进行比较: 这段代码就是我检查喜欢数并将它们

我已经能够使用“me/home”图形API调用为登录用户拉取Facebook新闻提要,并在活动中显示结果

现在我已经尝试了很多方法来查询帖子的like列,并检查当前用户是否喜欢帖子来显示状态。本质上,我设置了一个drawable来表示用户喜欢一篇文章

我真的无法发布我迄今为止尝试过的任何代码,因为它们都不起作用。相信我,我已经尝试了很多方法

如果有人能至少给我指出正确的方向,我将不胜感激

编辑:这是我最近一次尝试查询likes列并将结果与当前用户的ID进行比较:

这段代码就是我检查喜欢数并将它们添加到ArrayList的地方。这也是我运行查询的地方,以获得帖子上的赞

// GET THE POST'S LIKES COUNT

    if (json_data.has("likes")) {
        JSONObject feedLikes = json_data.optJSONObject("likes");
        String countLikes = feedLikes.getString("count");
        postLikesCountArrayList.add(countLikes);

        // TEST STARTS

        // QUERY THE LIKES COLUMN TO CHECK YOUR LIKE STATUS ON A POST

        Bundle params = new Bundle();
        params.putString(Facebook.TOKEN, Utility.mFacebook.getAccessToken());
        Utility.mAsyncRunner.request(finalThreadID + "/likes&limit=200", params, new LikesListener());

        // TEST ENDS
        } else {
            String countLikes = "0";
            postLikesCountArrayList.add(countLikes);
        }
这个代码块是监听器(同一活动中的private类),在这里检查结果:

private class LikesListener extends BaseRequestListener {
        @Override
        public void onComplete(final String response, final Object state) {

            try {
                JSONObject JOLikes = new JSONObject(response);

                JSONArray JALikes = JOLikes.getJSONArray("data");

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

                    if (JOTemp.has("id"))   {
                        String getTempID = JOTemp.getString("id");

                        if (getTempID.equals(initialUserID))    {

                            Runnable run = new Runnable() {

                                @Override
                                public void run() {
                                    // TODO Auto-generated method stub


                                    ImageView postYourLike = (ImageView) findViewById(R.id.postYourLike);
                                    postYourLike.setBackgroundResource(R.drawable.btn_icon_liked);
                                }
                            };
                            TestNewsFeeds.this.runOnUiThread(run);
                        }
                    }

                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
像Listener这样的私有类扩展了BaseRequestListener{
@凌驾
public void onComplete(最终字符串响应、最终对象状态){
试一试{
JSONObject JOLikes=新的JSONObject(响应);
JSONArray-JALikes=JOLikes.getJSONArray(“数据”);
对于(int i=0;i
您可以使用此fql。更换post\u id

SELECT likes.can_like, likes.user_likes FROM stream WHERE  post_id = "1274834235_3976149403543"
响应是这样的,如果用户_喜欢的是真的,那么他已经喜欢了

 {
  "data": [
    {
      "likes": {
        "can_like": true, 
        "user_likes": false
      }
    }
  ]
}

对不起,你真的需要给我们展示一个你尝试过的例子,以及你尝试时发生的事情。就我们所知,现在你们可以把你们的代码粘贴到计算器上。没问题。正在添加最新尝试的代码。@Len:我已经用最新尝试的代码更新了帖子。我向你保证,这里面没有计算器太好了+祝你好运!这将返回用户是否可以喜欢帖子?我刚刚检查了两个帖子,一个我喜欢,另一个我不喜欢,它们都返回与上面示例相同的结果。另一篇文章显示,一位朋友更改了个人资料图片,结果返回“false”,我还添加了用户_likes属性。尝试此操作现在确实会正确返回结果。给我5分钟检查一下是否有效,然后再给你回复。虽然它看起来很有前途,而且我感觉它会起作用。:-)成功了。另一个问题,但无关。非常感谢,伙计。:-)