【问题标题】:How to retrieve data from YouTube Analytics API without user action?如何在没有用户操作的情况下从 YouTube Analytics API 检索数据?
【发布时间】:2014-01-06 09:16:12
【问题描述】:

我会创建一个由 cron 作业启动的脚本,该脚本会定期将有关我的频道的数据存储在一个文件中。这些数据是通过 YouTube Analytics API(不是普通的 YouTube API)检索的。

我怎样才能达到这个结果? 服务访问是否与这些 API 兼容?

【问题讨论】:

    标签: youtube google-api oauth-2.0 google-oauth youtube-analytics


    【解决方案1】:

    如果这只是一次性的 - 对于您的帐户 - 在您信任的服务器/桌面上运行,我认为最好的机制是:

    1. 为“已安装的应用程序”创建 OAuth 客户端 ID。创建一个 Google Cloud Console 项目,启用您需要的 API,注册您的应用程序(在“APIs & Auth”下)。
    2. 手动检查一次已安装的应用程序流程以授予自己刷新令牌 - 这需要您打开浏览器并单击同意屏幕。
    3. 保留刷新令牌。
    4. 在后续无人参与的运行中,使用刷新令牌获取新的访问令牌以代表您拨打电话。

    如果您使用的是 Python - 并且已安装 Google API Python 客户端,则以下代码将为您执行第 2 至第 4 步(假设您已完成第 1 步并保存了一个 client_secrets.json 文件):

    import httplib2
    from oauth2client.file import Storage
    from oauth2client.client import flow_from_clientsecrets
    from oauth2client.tools import run
    from apiclient.discovery import build
    
    storage = Storage("/path/to/saved_user_creds.dat")
    credentials = storage.get()
    if credentials is None or credentials.invalid:
      credentials = run(flow_from_clientsecrets("/path/to/client_secrets.json", scope="https://www.googleapis.com/auth/yt-analytics.readonly"), storage)
    http = credentials.authorize(httplib2.Http())
    
    # Do your stuff - remember to pass the authenticated http object to execute methods
    service = build("youtubeAnalytics", "v1")
    result = service.object().method(name=value).execute(http=http)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      相关资源
      最近更新 更多