【问题标题】:GET Channel ID using Youtube API v3 with Service Account使用带有服务帐户的 Youtube API v3 获取频道 ID
【发布时间】:2017-03-29 22:04:06
【问题描述】:

美好的一天,我尝试使用服务帐户获取频道 ID,因为我在项目的其他范围内使用它。但是当我请求处理时,它会给我服务帐户信息。我正在使用 php 顺便说一句

提前非常感谢,任何帮助将不胜感激。

p.d.我正在用虚拟文本替换真实帐户信息。

当然还有代码:

$credentials_file = $this->key_dir . $this->key_file['title'];

    $client = new \Google_Client();
    $client->setAuthConfig($credentials_file);
    $client->addScope('https://www.googleapis.com/auth/youtube');

    $client->setApplicationName("Youtube Analytics");
    $client->refreshTokenWithAssertion();

    $token = $client->getAccessToken();
    $accessToken = $token['access_token'];
    if (!empty($accessToken)) {

    $service = new \Google_Service_YouTube($client);

    $data = $service->channels->listChannels('id,snippet', array('mine' => 'true'));

    echo "id: " . $data->items[0]->id . "<br>";
    echo "Kind: " . $data->items[0]->kind . "<br>";
    echo "Snippet -> title : " . $data->items[0]->snippet['title'] . "<br>";

    }

【问题讨论】:

    标签: youtube-api youtube-data-api youtube-analytics youtube-analytics-api


    【解决方案1】:

    AFAIK,Youtube API 不支持服务帐户流。如document 中所述:

    服务帐户流支持不访问用户信息的服务器到服务器交互。但是,YouTube 数据 API 不支持此流程。由于无法将服务帐户链接到 YouTube 帐户,因此尝试使用此流程授权请求将产生 NoLinkedYouTubeAccount 错误。

    同样在 Youtube v3 Google Service Account Access 问题中,“没有计划向 YouTube 数据 API v3 调用添加对服务帐户授权的支持。”正如相关的 SO 问题 #21890982#21057358 中所述:您需要自己的帐户,并且可以使用 V3 为服务创建身份验证,而无需用户干预。

    希望这会有所帮助。

    【讨论】:

    • 非常感谢,@Mr.Rebot 说的很正确,很清楚。
    猜你喜欢
    • 2023-03-31
    • 2019-01-11
    • 2015-02-14
    • 2016-06-05
    • 1970-01-01
    • 2023-03-06
    • 2019-05-22
    • 2016-03-17
    • 2015-01-06
    相关资源
    最近更新 更多