Google Ads API 的 Google OAuth 问题 - python

Posted

技术标签:

【中文标题】Google Ads API 的 Google OAuth 问题 - python【英文标题】:Trouble with Google OAuth for Google Ads API - python 【发布时间】:2018-10-20 18:04:20 【问题描述】:

我正在开发一个网络应用程序来代表用户获取 Google 广告活动的信息。我正在使用 google 提供的 python 库,但我在获取初始凭据以开始测试对 API 的调用时遇到了很多麻烦。

我正在关注此文档:https://github.com/googleads/google-ads-python/wiki/OAuth-Web-Application-Flow

我已经完成了第 1 步,并且拥有了我的客户端密码、客户端 ID 和重定向 uri。

在第 2 步中,我需要设置 OAuth 网络流,它说要使用以下代码:

import google.oauth2.credentials
import google_auth_oauthlib.flow

# Initialize the flow using the client ID and secret downloaded earlier.
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
    'client_secret.json',
    scope=['https://www.googleapis.com/auth/adwords'])
# Indicate where the API server will redirect the user after the user completes
# the authorization flow. The redirect URI is required.
flow.redirect_uri = 'https://www.example.com/oauth2callback'

当我运行我的应用程序时,我收到以下错误:from_client_secrets_file() 正好需要 3 个参数(给定 2 个),所以我将代码更改为以下内容:

import google.oauth2.credentials
from google_auth_oauthlib.flow import Flow

# Initialize the flow using the client ID and secret downloaded earlier.
flow = Flow.from_client_secrets_file(
    'client_secret.json',
    scope=['https://www.googleapis.com/auth/adwords'],
    redirect_uri = ['https://www.dintdigital.com'])

但是我一直收到同样的错误,我不明白为什么,因为我实际上是给 from_client_secrets_file 3 个参数而不是 2 个,正如错误所说的那样。

我目前有自己的 Google Ads 帐户,我正在使用它来测试和构建我的应用,但最后我想使用该应用连接到任何用户的帐户并获取他们的广告信息(如果他们允许我验证后)。

我需要先获取我帐户的所有凭据和令牌,但 Google 的文档有点难以理解。请帮忙!

【问题讨论】:

Edit 您的问题并显示完整的追溯。 【参考方案1】:

from_client_secrets_file 类方法具有以下签名:

from_client_secrets_file(client_secrets_file, scopes, **kwargs)

您提供了client_secrets_file 参数,但没有提供scopes 参数。相反,您有一个不同的参数scope,它将被添加到kwargs 映射中。将scope更改为scopes,错误就会消失。

(我还注意到您的重定向 URI 看起来不正确。这是流程将完成并提供访问令牌的地方,因此很可能不是您的主页。如果确实如此,请忽略此评论。)

【讨论】:

以上是关于Google Ads API 的 Google OAuth 问题 - python的主要内容,如果未能解决你的问题,请参考以下文章

Google Ads API - 是不是存在 REST API?

如何通过 Google Ads API 获取已注销的帐户?

在 Google Cloud Platform Console 上启用 Google Ads API 的问题

如何通过 Google Analytics API 获取 Google Ads 关键字和广告内容

尽管使用了刷新令牌,但 Google Ads API 仍显示“令牌已过期或撤销”

如何修复来自 Google Ads API 的无效 JSON 负载错误