2

我为我的雇主对组织的 YouTube 频道进行分析。我已经使用 YouTube DATA API 成功检索数据,但是我无法从 YouTube Analytics API (a'la reports.query) 获取指标。

以下是详细信息... 身份验证:SAML(组织 GSuite 帐户) 授权:OAuth2 我的组织帐户是 YouTube 频道的“所有者”(尽管不是主要所有者)。Google Cloud Platform 项目:内部(组织)

我尝试了各种 SCOPE 组合。

当我指定 ids="channel==<channel_id>" 时,我收到 403(禁止)响应。

当我指定 ids="channel==MINE" 时,我得到一个带有标题的 200 状态,但取决于维度和指标选择,要么没有记录,要么每个指标都有一个零记录。我的怀疑是“channel==MINE”正在寻找“我的”频道而不是品牌帐户的频道,因为否则它不知道哪个品牌频道。

我的问题是,如何确保我的组织帐户可以使用 YouTube Analytics API 和 YouTube Reporting API 获取数据?是否有分配这些访问权限的管理站点?如果是这样,它在哪里?

以下代码本质上是来自 API Explorer 的示例代码...

import os

import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors

scopes = ["https://www.googleapis.com/auth/youtube.readonly"]


def main():
    # Disable OAuthlib's HTTPS verification when running locally.
    # *DO NOT* leave this option enabled in production.
    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

    api_service_name = "youtubeAnalytics"
    api_version = "v2"
    client_secrets_file = "client_secret.json"

    # Get credentials and create an API client
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    # credentials = flow.run_console()
    credentials = flow.run_local_server()
    youtube_analytics = googleapiclient.discovery.build(
        api_service_name, api_version, credentials=credentials)

    request = youtube_analytics.reports().query(
        ids="channel==MINE",
        startDate="2020-09-01",
        endDate="2020-09-30",
        dimensions="day",
        metrics="views",
    )
    response = request.execute()

    print(response)


if __name__ == "__main__":
    main()

如图所示的代码,产生...

{'kind': 'youtubeAnalytics#resultTable', 'columnHeaders': [{'name': 'day', 'columnType': 'DIMENSION', 'dataType': 'STRING'}, {'name': 'views', 'columnType': 'METRIC', 'dataType': 'INTEGER'}], 'rows': []}

将 ids 设置为“channel==UC6L0DBYWqAkmwfawTUMaR3g”,返回以下内容...

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://youtubeanalytics.googleapis.com/v2/reports?ids=channel%3D%3DUC6L0DBYWqAkmwfawTUMaR3g&startDate=2020-09-01&endDate=2020-09-30&dimensions=day&metrics=views&alt=json returned "Forbidden">

4

0 回答 0