YouTube API v3 检测是不是订阅了频道

Posted

技术标签:

【中文标题】YouTube API v3 检测是不是订阅了频道【英文标题】:YouTube API v3 detect if subscribed to a channelYouTube API v3 检测是否订阅了频道 【发布时间】:2014-05-15 18:04:40 【问题描述】:

我希望能够检测当前经过身份验证的用户是否订阅了 YouTube API v3 中的特定 YouTube 频道。

一种可能的解决方案是检索当前经过身份验证的用户的所有订阅的列表,并检查频道的频道 ID 是否包含在该列表中。如果用户有数百个订阅,那将是一个非常低效的解决方案,并且可能需要很长时间。

有什么简单的方法可以检查吗?我浏览了整个 API 文档,但找不到任何东西。

【问题讨论】:

【参考方案1】:

使用subscriptions#list 方法并传递mine = true 和您要签入forChannelId 的频道ID。如果经过身份验证的用户没有订阅该频道,它将返回一个空列表。

【讨论】:

@Vinicius Pinto 你能看看这个问题吗?这是关于同一个问题。 ***.com/questions/28189354/… @JonasG 我在验证用户身份并获取访问令牌后尝试做同样的事情,然后将其重定向到类似domain.com/google/test.php?code=access 令牌的链接,而不是 $data =file_get_contents('googleapis.com/youtube/v3/subscriptions?part=snippet &maxResults=50&access_token='.$code.'&mine=true&key=My API Key Here'); var_export($data) 但我得到“错误”和这个问题中的错误***.com/questions/28215693/…希望你能帮助解决这个问题。提前致谢。【参考方案2】:
checkSubscribe (params) 
  var request = 
gapi.client.youtube.subscriptions.list(removeEmptyParams(params));
  request.execute((response) => 
  console.log(response);
   if (response.code !== 401 && response.code !== 400 && response.items[0] ) 
      console.log('response');
      console.log(response);
     
    );
 
  removeEmptyParams(params)[![enter image description here][1]][1]
    for (const pra in params) 
      if (!params[pra] || params[pra] === 'undefined') 
        delete params[pra];
     
   
    return params;
  

checkSubscribe(
    part: 'snippet, contentDetails', mine: true,
    'forChannelId':'PUT-YOUR-CHANEL--ID','onBehalfOfContentOwner': ''
);

【讨论】:

以上是关于YouTube API v3 检测是不是订阅了频道的主要内容,如果未能解决你的问题,请参考以下文章

使用新的 YouTube API v3 解析 YouTube 订阅者数量

如何使用 YouTube API V3 获取频道

在搜索 youtube api 3 中获取号码订阅频道

YouTube API V3 在根据特定国家/地区获取热门频道时遇到困难

YouTube API。检查用户是不是已订阅

如何获得YouTube频道的you-tube订阅者订阅列表?