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

谷歌广告API的谷歌OAuth问题-python

充培
2023-03-14

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

我遵循以下文件:https://github.com/googleads/google-ads-python/wiki/OAuth-Web-Application-Flow

我已经完成了第一步,我有我的客户机密码、客户机ID和重定向uri。

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

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_file3个参数,而不是错误所说的2个。

我目前有自己的谷歌广告账户,我正在使用它来测试和构建我的应用程序,但最终我想使用该应用程序连接到任何用户的账户,并获取他们的广告信息(如果他们在认证后给我许可)。

我需要先获得我账户的所有凭证和代币,但谷歌的文档有点难以理解。请帮忙!

共有1个答案

李森
2023-03-14

from_client_secrets_file类方法具有以下签名:

from_client_secrets_file(client_secrets_file, scopes, **kwargs)

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

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

 类似资料:
  • 在我的android项目中实现谷歌广告后,我面临着应用程序大小的大幅增加,对我来说,这是由com.google.android.gms.internal.ads.中的许多类引起的。有什么方法可以用更低的内存来实现广告吗?

  • 我正在尝试Google_web_app集成身份验证:http://android-developers.blogspot.pt/2013/01/verifying-back-end-calls-from-android.html 基本上,Android应用程序应该获得一个OAuth令牌,该令牌链接到我现有的web应用程序客户端_id。当我从google api获得令牌时,我的示例应用程序工作正常,

  • 我合作的公司有许多客户使用谷歌广告为他们的网站做营销。公司希望使用客户的数据进行分析。我得到了一个项目,使用C#集成谷歌广告API,从谷歌广告中获取所有数据,如活动等,并将其移动到我们的系统中为每个客户端。我只给开发人员令牌和客户端的客户ID。例如 客户A的客户ID 客户B的客户ID 当我浏览谷歌广告API文档时,我有点不知所措。在文档中,是OAuth2。0需要创建才能使用客户端库,该库将生成客户

  • 编译时,我得到了这个错误:错误:任务执行失败:应用程序:进程调试资源。 错误:多个包名为com.google.android.gms的库 但是,当删除该行时:compile'com。谷歌。Android游戏服务:6.1.11' 我得到以下错误:错误:(41,42)错误:包com。谷歌。Androidgms。appindexing不存在错误:(42,42)错误:包com。谷歌。Androidgms。

  • 每次我试图在谷歌云平台上启用谷歌广告API时,我都会收到以下错误: 未找到服务名称为googleads的API解决方案。古格里皮斯。通用域名格式 我在同一封电子邮件下设置了一个广告管理器帐户,并生成了一个API访问令牌。我尝试在不同的电子邮件和不同的浏览器下设置它,我甚至尝试使用隐身模式,看看这是否会根据其他线程的指令解决问题。我还为我试图访问谷歌广告api的项目创建了oAuth2凭据。 我真的只

  • 我的应用程序中有一个刷新令牌问题,我不知道如何解决它。我看过很多关于它的帖子,但我仍然需要一些帮助。我使用的授权码基本上是快速启动码。 直到谷歌开始响应HTTP 400错误请求的那一天,上述功能一直运行良好,并显示以下消息 {“error”:“invalid_grant”,“error_description”:“令牌已过期或吊销。”} 我浏览了Google OAuth发布的“invalid_gr