【问题标题】:Buffer API authentication with Python使用 Python 进行缓冲区 API 身份验证
【发布时间】:2018-01-16 06:21:44
【问题描述】:

我正在尝试为 Buffer(社交媒体调度应用程序)授权 API。我按照这里的说明进行操作https://buffer.com/developers/api/oauth

授权的第一步,使用以下类型的请求将用户重定向到授权页面:

GET https://bufferapp.com/oauth2/authorize?
    client_id=...&
    redirect_uri=...&
    response_type=code

一旦授权页面重定向到redirect_uri,授权码作为查询参数:

http://example.com/back?code=1/mWot20jTwojsd00jFlaaR45

然后在 POST 请求中使用该代码来获取访问令牌:

POST https://api.bufferapp.com/1/oauth2/token.json

POST Data
     client_id=...&
     client_secret=...&
     redirect_uri=...&
     code=...&
     grant_type=authorization_code

但是,授权码的有效期为 30 秒。

当我手动进行授权,然后我收到一个带有 auth_code 的 POST 请求时,如下所示:

my_data = {
    'client_id': my_client_id,
    'client_secret': my_client_secret,
    'redirect_uri': my_redirect_uri,
    'code': auth_code,
    'grant_type': 'authorization_code',
}

token = requests.post('https://api.bufferapp.com/1/oauth2/token.json', data=my_data)

我收到“无效授权”错误。

我查找了与其他 API 相关的错误(Buffer API 似乎没有被太多使用),其中一个原因可能是 auth_code 过期。鉴于保质期短,这不足为奇。

自动化授权位以避免 auth_code 过期的好方法是什么?

还是我在这里做错了什么?

非常感谢您的帮助

【问题讨论】:

    标签: python api oauth-2.0 authorization


    【解决方案1】:

    Buffer 是 OAuth 2.0 提供程序。

    您必须使用 OAuth 2 工作流程,了解一下

    请求-OAuthlib:OAuth 2 Workflow

    以下部分提供了一些示例代码,演示了您可以与 requests-oauthlib 一起使用的一些可能的 OAuth2 流程。我们提供了四个示例:一个用于 OAuth2 RFC 定义的每种授权类型。这些授权类型(或工作流程)是授权代码授权(或 Web 应用程序流)、隐式授权(或移动应用程序流)、资源所有者密码凭证授权(或更简洁地说,传统应用程序流)和客户端凭据授予(或后端应用程序流)。

    【讨论】:

    • 非常感谢,我会试试这个
    猜你喜欢
    • 2015-02-17
    • 1970-01-01
    • 2023-03-11
    • 2016-08-30
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2016-10-21
    相关资源
    最近更新 更多