【问题标题】:Amazon advertising API get authorization code via script亚马逊广告 API 通过脚本获取授权码
【发布时间】:2020-09-09 08:10:33
【问题描述】:

我正在尝试使用 python 脚本从亚马逊广告中获取报告,但我找不到获取授权码的方法。所有亚马逊文档都参考网站,没有自动脚本。

知道如何实现它吗?

谢谢。

【问题讨论】:

    标签: amazon amazon-advertising-api


    【解决方案1】:

    你需要什么:

    • developers.amazon.com 上注册的应用程序
    • client_idclient_secret 用于此应用
    • 同意访问亚马逊广告账户(通过“登录亚马逊”完成)

    经过同意程序后,您会收到 refresh token
    使用client_idclient_secretrefresh token,您可以构建一个python 脚本来接收access token - 使用access token,您可以访问亚马逊广告API。

    资源:
    https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup https://advertising.amazon.com/API/docs/en-us/get-started/overview

    编辑: 我建议使用Postman 或 SoapUI 之类的工具来轻松测试 auth 和 api 请求...

    【讨论】:

    • 嗨@tector,我能够使用我的程序检索报告。但是,我们通过 redirect_url 获取 Auth Code 的地方是我无法自动化的一个地方,请您帮帮我,因为我每次使用该程序时都必须手动检索 Auth Code。
    • 您不必每次都这样做。通过“代码授予流程”,您可以获得一个代码。使用此代码,您可以请求获取刷新令牌。此刷新令牌永久有效。因此,您可以(重新)使用刷新令牌来获取访问令牌。使用访问令牌,您可以完成所有请求。如果 Access Token 已过期,您可以使用 Refresh Token 获取一个新的。
    【解决方案2】:

    我遇到了同样的问题,使用 tector 的评论我构建了一个简单的函数,它使用 Refresh Token(永不过期)来生成授权码,有效期为 60 分钟:

    import requests
    import json
    
    host = 'https://api.amazon.com/auth/o2/token'
    body = {
    "grant_type": "refresh_token",  
    'client_id': YOUR CLIENT ID,
    'refresh_token': YOUR REFRESH TOKEN,
    'client_secret': YOUR CLIENT SECRET
    }
    headers = {"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"}
    
    def authenticator():
        r = requests.post(host, body,
            headers=headers)
        r.raise_for_status()
        r = r.json()
        with open('FILENAME.json', 'w') as f:
            json.dump(r, f)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多