当前位置: 首页 > 知识库问答 >
问题:

订阅YouTube频道时获取特定div的ID

谭修竹
2023-03-14

我需要在用户订阅或取消订阅Youtube频道时显示该频道的名称。

下面是两个订阅按钮和一个事件脚本。

<script src="https://apis.google.com/js/platform.js"></script>

<div id="chan-1" class="g-ytsubscribe" data-channel="SMOSH" data-layout="default" data-count="default" data-onytevent="onYtEvent"></div>
</div>

<div id="chan-2" class="g-ytsubscribe" data-channel="Apple" data-layout="default" data-count="default" data-onytevent="onYtEvent"></div>
</div>

<script>
  function onYtEvent(payload) {

    if (payload.eventType == 'subscribe') {
      // Need to display subscribed channel name

    } else if (payload.eventType == 'unsubscribe') {
      // Need to display unsubscribed channel name

    }
    if (window.console) { // for debugging only
      window.console.log('YT event: ', payload);
    }
  }
</script>

共有2个答案

潘国源
2023-03-14

您可以使用以下代码:

    var divs = $('div#chan-1').attr('id');

要获取<code>的id:

一个JS Bin示例:http://jsbin.com/mazasegawu/edit?html输出

厉坚
2023-03-14

您可以通过多种方式执行此操作。

>

  • 将payload参数中传递的外部id与通道id匹配

    有效负载参数包含 channelExternalId,它包含该频道 youtube id。您可以保留要显示的频道的外部 ID 列表,以及当 ytevent 触发时将 channelExternalId 与正确的频道名称相匹配

    var channelNamesById = {
       "UCY30JRSgfhYXA6i6xX1erWg":"SMOSH",
       "UCE_M8A5yxnLfW0KghEeajjw":"Apple"
    };
    function onYtEvent(payload){
        var channelName = channelNamesById[payload.channelExternalId];
    }
    

    有几种方法可以获取频道 ID,请参阅此处

    动态创建按钮,并将频道名称绑定到ytevent回调函数,该函数将频道名称作为参数传递

    api还允许您动态创建按钮。以这种方式创建按钮时,可以将其设置为将通道名称传递给回调函数

    网页

    <div id="chan-1"></div>
    <div id="chan-2"></div>
    

    射流研究…

    gapi.ytsubscribe.render(
       document.querySelector("#chan-1"),
       {
           "channel": "SMOSH", 
           "layout": "default",
           "count":"default",
           "onytevent":onYtEvent.bind(null,"SMOSH")
       }
    );
    gapi.ytsubscribe.render(
      document.querySelector("#chan-2"),
      {
           "channel": "Apple", 
           "layout": "default",
           "count":"default",
           "onytevent":onYtEvent.bind(null,"Apple")
      }
    );
    
    function onYtEvent(channelName,payload) {
        console.log(channelName);
    }
    

    您还可以使用api执行ajax请求以获取频道详细信息,其中应包括频道名称,但由于您在代码中已经有频道名称,因此我没有介绍该选项。信道api

  •  类似资料:
    • 我可以得到数字订阅频道,但通过困难的方法,我不知道这个方法是否正确。 首先我派人去找https://www.googleapis.com/youtube/v3/search?part=snippet 然后我为循环获取获取频道ID后每个频道的数字订阅 得到https://www.googleapis.com/youtube/v3/channels?part=statistics 然后我得到我的结果频

    • 作为YouTube关于实施和迁移到API V3的官方留档,他们说: YouTube数据API(v2)功能:检索视频推荐 v3 API不会检索仅包含为当前API用户推荐的视频的列表。但是,您可以使用v3 API通过调用activities.list方法并将home参数值设置为true来查找推荐的视频。 但现在参数 也被弃用了。目前,当我将 参数设置为 ,我只检索频道中最近上传的视频:YouTube

    • 问题内容: 有没有一种方法可以通过StackExchange.Redis库获取特定Redis通道的通道订阅数?直接与Redis交互时,它可以与PUBSUB NUMSUB命令(http://redis.io/commands/pubsub)一起使用,但是在C#客户端库中看不到等效调用。 问题答案: 这是一个 服务器 的命令(而不是一个 数据库 命令),所以相同的指南适用为,,,等。简短版本:使用。较

    • 我正在尝试使用频道的视频,https://www.googleapis.com/youtube/v3/search?order=date

    • 我正在学习使用youtube数据api v3显示播放列表列表,并从下面的链接进一步显示每个播放列表的视频列表https://developers.google.com/youtube/v3 我能够得到一个频道id的播放列表,并进一步获得每个播放列表,视频列表。 在此之前,我需要通道id来完成其余的操作。输入将是通道的名称,输出应该是细节,其中包括唯一的通道id。下面是我尝试的代码片断,但是我总是得

    • 语境: 给定一个WooCommerce和WooCommerce订阅的WordPress网站,我试图获取特定用户订阅的列表。在最近的更新之前,这一行代码已经为我解决了这个问题。以下是我一直在使用的代码: 其中$user\u id是WordPress中的有效用户id。 问题: 自上次更新以来,我们经常看到以下错误: 致命错误:在/home/warfarep/public_html/wp content