【问题标题】:Create BigQuery adwords transfer with my end user credential使用我的最终用户凭据创建 BigQuery adwords 传输
【发布时间】:2020-09-11 08:14:47
【问题描述】:

我正在尝试从 python SDK 创建谷歌广告传输,但我遇到了一个奇怪的问题。 要在 BigQuery 中创建转移,您的 GCP 帐户应具有 BigQuery 的管理员角色,并且还应具有对 AdWords 帐户的读取权限。起初,我们是手动创建传输,但现在我们必须使用 pythons google-cloud-bigquery-datatransfer 包来实现它。问题是这段代码将运行生产服务器,其中已经存在一个服务帐户为GOOGLE_APPLICATION_CREDENTIALS,所以我不能以这种方式添加我的最终用户帐户凭据。此外,我们无法提供对服务帐户的 GoogleAds 只读访问权限。有没有办法使用最终用户凭据从代码创建 BQ 传输,或者有没有办法为最终用户帐户创建/生成密钥文件。

注意 - 我已尝试使用使用应用程序默认 gcloud 命令生成的密钥文件及其引发 Service account info was not in the expected format, missing fields token_uri, client_email. 错误。

注意 - 我遇到了 OAuth 流程,只是想知道如果没有它是否可以完成。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    我建议检查文档以使用 service account key file 验证 python 应用程序。

    -Create a new service account并使用json文件配置python客户端:

    key_path = "path/to/service_account.json"
    credentials = service_account.Credentials.from_service_account_file(
        key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
    )
    
    client = bigquery.Client(credentials=credentials, project=credentials.project_id,)
    

    另外,如果有帮助,请使用end-user account can be via OAuth 验证您的应用程序的方法,为此,请按照以下步骤操作:

    -以described here身份验证并调用API:

    appflow = flow.InstalledAppFlow.from_client_secrets_file(
        "client_secrets.json", scopes=["https://www.googleapis.com/auth/bigquery"]
    )
    

    最后,请参考用户帐户、身份验证和密码管理文档的最佳做法,以正确实施您的credentials on the client side

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多