订阅 youtube api v3 推送通知时如何接收和处理数据?

问题描述 投票:0回答:2

根据此https://developers.google.com/youtube/v3/guides/push_notifications

我可以订阅 YouTube 频道并接收任何新视频的推送通知。

我的回调服务器是一个解释 POST/GET 数据的 php 脚本:

<?php
if (isset($_GET['hub_challenge'])) {
  print $_GET['hub_challenge'];
}
else {
  $xml=file_get_contents("php://input");
  file_put_contents('endpoint.txt',$xml);
}
?>

但是

$xml
是空的。在文档中它说:

YouTube 数据 API (v3) 支持通过以下方式推送通知 PubSubHubbub,服务器到服务器的发布/订阅协议 可通过网络访问的资源。通知被推送给订阅者 通过 HTTP webhooks,这比基于轮询的效率高得多 解决方案。

但它确实没有指定如何发送数据......无论是在POST正文还是在其他地方。

那么如何在我的脚本中获取原子提要?


编辑:我可能应该为此问一个新问题......但无论如何......我尝试了这个频道(https://www.youtube.com/channel/UCATp8LNTjzjNlLxdArp0Myg);但当我尝试订阅时,它显示“限制主题”(我没有提供

token
,因为它是公共频道)。对于任何其他通道 ID 也是如此。我的回调服务器有问题吗?我还尝试了 runscope url 作为回调服务器进行测试。但这并没有帮助。

push-notification youtube-api
2个回答
3
投票

其他人也有类似的问题。这是问题日志:

https://code.google.com/p/gdata-issues/issues/detail?id=7138

以及相关的 StackOverflow 问题:

Youtube API - 订阅推送通知

不幸的是,尽管您可以关注问题并跟踪任何进展,但似乎没有人提供解决方案。


0
投票

是的,它在 POST 主体上发送数据。如果您使用 Express Nodejs,请添加 app.use(bodyParser.xml()) 中间件来解析 xml 数据

© www.soinside.com 2019 - 2024. All rights reserved.