Facebook graph api 使用php-sdk-v4时facebook graph api中的嵌套分页

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

我正试图让所有喜欢某个特定帖子的用户都加入到feed中。我正在使用
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
,然后请求各个帖子的详细信息。