2

我想设计一个具有功能齐全的喜欢/不喜欢,分享和评论的新闻提要,当然还可以从用户newfeed中获取最近的帖子。现在是这样,我想检查用户是否喜欢帖子(类型是视频,照片、链接或状态)。

如果用户已经喜欢该帖子,则显示不喜欢按钮,如果用户没有喜欢,则显示喜欢按钮。

文件:

index.php点击打开文件

现在这里有几个问题:1-问题是,当我运行此代码时,它只显示来自新闻源的一篇文章。但是如果我从代码中删除以下代码,它将从新闻源中获取 20 篇文章。我不知道是什么正在发生。

$ret = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT like_info FROM $type WHERE object_id=$object_id"
 ));
 $checklike = $ret['data']['like_info']['user_likes'];

2-我们只能将 object_id 用于照片、相册和视频。但您不能使用它从链接和状态类型中获取 like_info。所以我需要新的方法和新技术来确定用户是否喜欢某个帖子

3-每当我在 foreach 循环中添加一个新的 $facebook->api() 时,它都会从 fb 获取 1-3 个帖子,甚至不是全部。

因此,如果您无论如何都能找到具有功能齐全的喜欢/不喜欢、分享和评论的新闻提要,当然还可以从用户 newfeed 获取最近的帖子或解决我提到的问题,那将是非常棒的。

请尽快帮助我,如果您需要任何东西,请发表评论,我会为您提供。

谢谢。

4

2 回答 2

0

以下是您的几个问题的解决方案:

问题:当我运行此代码时,它只显示来自新闻提要的一篇文章。但是如果我从代码中删除以下代码,它将从新闻提要中获取 20 篇文章。我不知道发生了什么。

$ret = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT like_info FROM $type WHERE object_id=$object_id"
 ));
 $checklike = $ret['data']['like_info']['user_likes'];

答:上面的代码正在过滤您的内容,在这里您正在检查您的 20 个帖子(您正在拉取的帖子)中的每一个是否并单独循环并检查它是否是登录的状态、照片、视频、链接等用户与否?上面的查询仅适用于 type = Photo,type = Link,据我所知只有照片,链接有 like_info 对象,但您需要参考 FQL 文档。对于照片以外的帖子,链接使用此查询:

SELECT like_info FROM stream WHERE post_id ='$id'

有关更多信息,您可以在此处查看 -https://developers.facebook.com/docs/reference/fql

问题:我们只能将 object_id 用于照片、相册和视频。但您不能使用它从链接和状态类型中获取 like_info。所以我需要新的方法和新技术来确定用户是否喜欢某个帖子

:使用流表,用于like_info。

问题:-每当我在 foreach 循环中添加一个新的 $facebook->api() 时,它都会从 Facebook 获取 1-3 个帖子,甚至不是全部。

:这个没收到?

编辑:

你能给我看一个问题#3的例子吗

于 2013-08-11T18:16:14.210 回答
0

data是一个数组,将您的代码编辑为-

$checklike = $ret['data'][0]['like_info']['user_likes'];

或围绕每个对象循环,如果您期望多个结果,例如:

foreach($ret['data'] as $data)
 echo $checklike = $data['like_info']['user_likes'];

更新

今天最新版本的 Graph API 是 v2.8。在这个版本中,您也可以获得反应。用反应比点赞好,因为反应还包括点赞不喜欢的Love、WOW、HAHA等反应。

您可以添加反应摘要字段而不是喜欢的摘要,如下所示 fields=reactions.limit(0).summary(true)

使用它,您将获得如下反应摘要

"reactions": {
        "data": [
        ],
        "summary": {
          "total_count": 6,
          "viewer_reaction": "LOVE"
        }
      }, ......

请注意,"viewer_reaction": "LOVE"这意味着您已经对 LOVE 的帖子做出了反应。它的值可以是任何一个 LIKE, LOVE, HAHA, WOW, SAD, ANGRY, NONENONE表示您不喜欢该帖子。

于 2013-08-12T12:56:46.933 回答