从Facebook群组获取YouTube嵌入


Get youtube embeds from Facebook group

我正在从Facebook群组提要中提取墙上的帖子,但我唯一感兴趣的是youtube嵌入ID。研究Facebook的Graph API,我看不出是否有更简单的方法来直接提取youtube嵌入?

我目前的解决方案似乎有点沉重,因为小组墙上有 3000 多个帖子。

更新:据我所知,我需要获取元数据,因为 youtube 嵌入链接实际上并未显示在提要中。

这就是我解析组提要的方式,任何想法是我将如何在此处获取 youtube 链接的元数据附件?

require '../src/facebook.php';
$appId = 'appid'; //appid from facebook
$secret = 'secretid'; //secret from facebook
$groupId = 'groupid'; //facebook groupid
$facebook = new Facebook(array(
  'appId'  => $appId,
  'secret' => $secret,
  'cookie' => true
));
$response = $facebook->api('/'.$groupId.'/feed', array('limit' => 600, 'fields'=>'from,message, created_time'));    
print "<div class='facebook-feed-title'>Facebook Feed</div>";
foreach ($response['data'] as $value) {
    print "<div class='facebook-from'><a href='http://www.facebook.com/home.php?#!/profile.php?id=".$value['from']['id']."'>".$value['from']['name']."</a> wrote:</div>";
    print "<div class='link'>".$value['message']."</div>";        
}

在图形 api 响应源中,每个帖子都有一个参数调用"type"。对于视频,它将是

"类型": "视频"

您可以从"源"参数获取视频链接。然后将该链接添加到您的管嵌入代码中。

<iframe width="420" height="315" src="Youtube_source_link" frameborder="0" allowfullscreen></iframe>

虽然这个问题已经有 3 年的历史了,但我昨晚为此苦苦挣扎,并遇到了这个线程。

我找到了解决方案,所以我在这里发布,以防其他人找到线程。

在 API 2.4 中,您可能无法返回所有字段,但您可以明确地返回特定字段。例如:/%post-id%?fields=link,created_time将返回帖子的创建时间和链接字段 - 包括嵌入的 YouTube 链接。

重读上面的代码,我认为在字段子句中添加"链接"可能就足够了......