小编mrw*_*ers的帖子

如何自动对 basecamp 3 api(最好在 python 中)进行身份验证?

这是我第一次涉足 OAuth,所以如果我离基地很远,或者走向完全错误的方向,请耐心等待。

我想编写一个脚本来从 basecamp 3 中提取信息,对其进行格式化,然后通过电子邮件发送。我已经用 basecamp 2 做到了这一点,而且效果很好。但是 basecamp 3 不允许简单的身份验证。这只是一个每周通过 cron 运行一次的脚本。

我发现的大多数 OAuth 示例都需要获取授权 url、在浏览器中访问它、授予授权等以获取访问令牌。请告诉我有一种自动化的方式!我不能让这成为一个手动过程。

我用 requests-oauthlib 尝试了后端应用程序流(在这里找到:https ://requests-oauthlib.readthedocs.io/en/latest/oauth2_workflow.html#backend-application-flow )

我几乎没有运气就直接尝试了他们的例子:

from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session

ktclient_id = r'my-client-id'
ktclient_secret = r'my-client-secret'
ktredirect_uri = r'http://www.company.com/whatever'

client = BackendApplicationClient(client_id=ktclient_id)
oauth = OAuth2Session(client=client)

token = oauth.fetch_token(token_url=r'https://launchpad.37signals.com/authorization/token',
                        client_id=ktclient_id,
                        client_secret=ktclient_secret)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Traceback (most recent call last):
  File "./get-token.py", line 20, in <module>
    client_secret=ktclient_secret)
  File "/home/mwilson/.local/lib/python2.7/site-packages/requests_oauthlib/oauth2_session.py", line 244, in fetch_token
    self._client.parse_request_body_response(r.text, scope=self.scope)
  File "/home/mwilson/.local/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 409, in parse_request_body_response …
Run Code Online (Sandbox Code Playgroud)

python basecamp oauth2

5
推荐指数
1
解决办法
1901
查看次数

标签 统计

basecamp ×1

oauth2 ×1

python ×1