【发布时间】:2016-08-26 09:33:04
【问题描述】:
我已将 YouTube API 与我的 Android 应用程序集成。我能够从 API 获取各种信息并将其显示到我的应用程序中。目前,我正在寻找每当我在 youtube 上上传视频时在 Android 应用中显示推送通知的解决方案。
是否有任何 API 可用于此?
【问题讨论】:
标签: android youtube push-notification youtube-api android-youtube-api
我已将 YouTube API 与我的 Android 应用程序集成。我能够从 API 获取各种信息并将其显示到我的应用程序中。目前,我正在寻找每当我在 youtube 上上传视频时在 Android 应用中显示推送通知的解决方案。
是否有任何 API 可用于此?
【问题讨论】:
标签: android youtube push-notification youtube-api android-youtube-api
您需要一个服务器端来执行此操作, - 您可以开发一个 cron 作业以每隔 10 分钟运行一次 - 根据发布时间获取频道视频
$minutes= round(abs(time() - strtotime( $video['published'])) / 10,0);
如果分钟少于 10 分钟,您可以获取此视频详细信息并将其推送到您的应用中
我有 4 年前用 php 编写的示例代码
$youtubelib= APPPATH.'include/youtube.php';
include_once($youtubelib);
$channels=$this->channels->getChannelsPush();
foreach ($channels as $key => $value) {
$channel[$key]= new youtube();
$channel[$key]->set_username($value);
$feed[$key]=$channel[$key]->feed();
$vedios[$key]=$feed[$key]['videos'];
foreach ($vedios as $key => $value) {
foreach ($value as $key => $value2) {
$minutes= round(abs(time() - strtotime($value2['published'])) / 60,0);
// <= 60 last hour edit it for production
if($minutes <=60)
{
$value2['different_time']=$minutes;
$test[]=$value2;
}
}
}
echo "No videos published on last hour to push </br>";
if(!empty($test))
{
echo "vedios has been pushed </br>";
foreach ($test as $key => $value) {
echo "https://www.youtube.com/watch?v=".$value['id'];
$t=$this->apipush->addtrack($value['title'],$value['id'],1);
exec($this->androidvedioPush($value['title'],$value['id'],$value['cover'][0],$t));
}
【讨论】:
您可以查看documentation,了解 YouTube 数据 API (v3) 如何通过PubSubHubbub 支持推送通知。
通知通过 HTTP webhook 推送给订阅者,这比基于轮询的解决方案更有效。使用 PubSubHubbub,您的服务器可以近乎实时地发现事件,而无需确定最佳轮询间隔或重复获取未更改的数据。
当频道执行以下任何活动时,您的 PubSubHubbub 回调服务器会收到 Atom 提要通知:
- 上传视频
- 更新视频的标题
- 更新视频说明
您可以在上述文档中找到说明如何订阅通知的步骤。
【讨论】: