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

PHPYouTubeData API无需宣誓即可获取频道信息

马祺
2023-03-14

我想根据用户名或频道id提取频道信息。此信息来自用于查看该频道的URL。

EX:https://www.youtube.com/user/csga5000,或 https://www.youtube.com/channel/some-channel-id

我有这个代码:

$this->load->library('APIs/YouTube');
echo "[";
echo json_encode($this->youtube->getId('channel/UCkklJA9WbtJM5-g21xHI3yA'),false);
echo "\n]";

调用的函数是:

public function getId($url) {
    $id = explode('/', $url);
    echo json_encode($id).',';

    //User's channel
    if ($id[0] === 'user') {
        $response = $this->youtube->channels->listChannels('id,snippet',array(
            'forUsername' => $id[1]
        ));
    }
    //Channel id
    else {
        $response = $this->youtube->channels->listChannels('id,snippet',array(
            'id' => $id[1],
            'maxResults' => 2
        ));
    }

    return $response;
}

这是youtube类的构造函数:

public function __construct()
{
    $this->client = new Google_Client();
    $this->client->setDeveloperKey($this->api_key);
    $this->client->setClientId($this->client_id);
    $this->client->setClientSecret($this->client_secret);
    $this->client->setScopes(array(
        Google_Service_Oauth2::PLUS_LOGIN,
        Google_Service_Oauth2::PLUS_ME,
        Google_Service_Oauth2::USERINFO_EMAIL,
        Google_Service_Oauth2::USERINFO_PROFILE,
        Google_Service_YouTube::YOUTUBE
    ));

    $ci =& get_instance();
    $this->client->setRedirectUri($ci->config->item('base_url').'auth/youtube/');

    $this->oauth = new Google_Service_Oauth2($this->client);

    $this->youtube = new Google_Service_YouTube($this->client);
}

使用“user/csga5000”调用函数也不起作用

打印的结果是:

[
    [
        "channel",
        "UCkklJA9WbtJM5-g21xHI3yA"
    ],
    {
        "etag":"\"IHLB7Mi__JPvvG2zLQWAg8l36UU\/KcPrlZVHCJ9bAKurpGOj1BBEH6g\"",
        "eventId":null,
        "kind":"youtube#channelListResponse",
        "nextPageToken":null,
        "prevPageToken":null,
        "visitorId":null
    }
]

我只想要这样的结果:

https://www.googleapis.com/youtube/v3/channels?part=id片段

https://www.googleapis.com/youtube/v3/channels?part=id片段

您可以在此处进行测试:https://developers.google.com/youtube/v3/docs/channels/list#try-它

用户名为csga5000或id为UCkklJA9WbtJM5-g21xHI3yA

我发现的所有例子都是“我的”=

共有1个答案

孟安民
2023-03-14

我只是错过了一些愚蠢的东西,我对反应感到非常困惑。

我需要这句台词:

$response->getItems();
 类似资料:
  • 请求header GET /v1/activities/{频道id} Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 返回 { "id": 1928, "name": "测试",

  • 问题内容: 我想在应用程序中连接到wifi网络。 码: 但是问题是我不知道。如何获取WiFi网络的SSID ? 问题答案: 如果您想获得所有可用的wifi: 如果要连接wifi ssid: 如果您想添加新的wifi设置,我已在下面编写了演示应用程序:

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

  • 我有安装插座。io与laravel echo一起加入并收听laravel广播频道。公共频道工作正常,因为它们不需要任何授权。专用通道未按预期工作,我可以使用套接字加入任何专用通道。未传递授权令牌的io客户端。 插座io客户端 Laravel Echo服务器配置 航道 广播服务提供商 用户配置 127.0.0.1:8000/无令牌访问时的广播/授权响应 Laravel回声服务器 所以我猜larave

  • 我有一些线程,它们被赋予随机数(1到n),并被指示按排序顺序打印它们。我使用了信号量,这样我就获得了许可数=随机数,并释放了一个比所获得的多的许可。 获得=随机数;释放=1个随机数 信号量的初始许可计数为1。所以随机数为1的线程应该获得许可,然后是2,依此类推。 这是根据下面给出的文档支持的 不要求释放许可证的线程必须通过调用acquire()获得该许可证。 问题是我的程序在1代表n后卡住了 我的

  • 问题内容: 例如,使用winamp(至少在Windows上),您可以在后台以winamp播放全屏游戏,并使用媒体按钮*控制声音。Winamp不需要聚焦,可以使游戏继续全屏显示。 我更喜欢用Java编写此代码,但这可能行不通(在Java afaik中很难捕获没有重点的击键),因此任何C#解决方案也都可以。 因此,基本问题是:如何在没有重点的情况下捕获击键? *)我相信“后退/前进/停止/邮件/搜索/