Facebook graph api 使用php-sdk-v4时facebook graph api中的嵌套分页
我正试图让所有喜欢某个特定帖子的用户都加入到feed中。我正在使用Facebook graph api 使用php-sdk-v4时facebook graph api中的嵌套分页,facebook-graph-api,facebook-sdk-4.0,Facebook Graph Api,Facebook Sdk 4.0,我正试图让所有喜欢某个特定帖子的用户都加入到feed中。我正在使用facebook/php-sdk-v4。获取提要的下一页没有问题。然而,当我使用next函数获取下一个用户时,他们会喜欢它提供的内部循环中的帖子 错误:由以下原因引起:Facebook\Exceptions\FacebookAuthenticationException 提要不支持子字段 在FacebookRequest.phpI禁用了appsecret\u-proof,可能与此安全问题有关。如果我不禁用,它现在提供无效的apps
facebook/php-sdk-v4
。获取提要的下一页没有问题。然而,当我使用next函数获取下一个用户时,他们会喜欢它提供的内部循环中的帖子
错误:由以下原因引起:Facebook\Exceptions\FacebookAuthenticationException
提要不支持子字段
在FacebookRequest.php
I禁用了appsecret\u-proof
,可能与此安全问题有关。如果我不禁用,它现在提供无效的appsecret\u-proof
,尽管v5.0
sdk已经在Facebook\Authentication\AccessToken.php的70行内部生成了appsecret\u-proof
。
没有appsecret\u-proof
我可以请求,但在某些情况下,如批量查询或循环,我认为需要appsecret\u-proof
。但是,它自己生成代码,并给出无效错误。我不知道该怎么办
$fb = new Facebook\Facebook([
'app_id' => '60...
]);
$feed = $graphNode->getField('feed')
while(true) {
foreach ($feed->all() as $key1 => $post) {
if ($likes = $post->getField('likes')){
while(true) {
if (!($likes = $fb->next($likes))) break;
}
}
}
if (!($feed = $fb->next($feed))) break;
}
您需要一个graphidge
通过next
方法分页;但我怀疑getField('likes')
是否真的返回了GraphEdge
——您能否通过var_dump输出验证这一点?查看示例–了解他们是如何明确使用Graphedge的?试着用同样的方法实现它。$feed->all()
返回一个feed中所有已发布的项目$post
是节点,要获取likes
字段,我们不能使用数组索引,如arr['likes']
,这不起作用,而是使用getField()
函数,该函数在Collection.php
中定义,每个喜欢的项目都是GraphEdge
对象,所以没有问题。您的初始$graphNode
,是如何创建的?$response=$fb->get('/259454320877898?fields=feed.limit(5){message,from,likes{name,picture},is_popularity,created_time,updated_time})代码>下一个迭代器适用于提要,但不适用于喜欢的对象。它指向循环的appsecret\u-proof
。我认为您需要先获得单个帖子的/likes
边缘,否则它将无法工作。尝试请求/259454320877898/feed
,然后请求各个帖子的详细信息。您需要一个GraphEdge
通过next
方法分页;但我怀疑getField('likes')
是否真的返回了GraphEdge
——您能否通过var_dump输出验证这一点?查看示例–了解他们是如何明确使用Graphedge的?试着用同样的方法实现它。$feed->all()
返回一个feed中所有已发布的项目$post
是节点,要获取likes
字段,我们不能使用数组索引,如arr['likes']
,这不起作用,而是使用getField()
函数,该函数在Collection.php
中定义,每个喜欢的项目都是GraphEdge
对象,所以没有问题。您的初始$graphNode
,是如何创建的?$response=$fb->get('/259454320877898?fields=feed.limit(5){message,from,likes{name,picture},is_popularity,created_time,updated_time})代码>下一个迭代器适用于提要,但不适用于喜欢的对象。它指向循环的appsecret\u-proof
。我认为您需要先获得单个帖子的/likes
边缘,否则它将无法工作。尝试请求/259454320877898/feed
,然后请求各个帖子的详细信息。