0

我通过自己编写的网站在线销售产品。为了管理我的履行流程,在进行购买时,我希望我的应用程序自动在 Trello 板上创建一张卡片。

除了几分钟后我使用的令牌过期外,我已经设法做所有事情,即使我认为我创建了一个永不过期的令牌。

每次收到订单时,我都无法手动进行身份验证。

这是我为生成令牌而编写的代码。(Oauth1)。

第 1 步(一次):获取手动授权的资源所有者密钥、资源所有者密钥和验证者。

import requests
from requests_oauthlib import OAuth1Session
oauth = OAuth1Session(CLIENT_KEY, client_secret=CLIENT_SECRET)
fetch_response = oauth.fetch_request_token(REQUEST_TOKEN_URL)
resource_owner_key = fetch_response.get('oauth_token')
resource_owner_secret = fetch_response.get('oauth_token_secret')

print(f'resource_owner_key: {resource_owner_key}')
print(f'resource_owner_secret: {resource_owner_secret}')
auth_url = oauth.authorization_url(AUTHORIZE_TOKEN_URL, scope='read,write', expiration='never') # expiration never
print(auth_url)
# Now manually authenticate in browser using this URL. Record resource owner key, secret and verifier

第 2 步(每次):使用资源所有者密钥、资源所有者密钥和验证者生成令牌。

oauth = OAuth1Session(CLIENT_KEY,
client_secret=CLIENT_SECRET,
resource_owner_key=RESOURCE_OWNER_KEY,
resource_owner_secret=RESOURCE_OWNER_SECRET,
verifier=VERIFIER)
oauth_tokens = oauth.fetch_access_token(ACCESS_TOKEN_URL)
token = oauth_tokens.get('oauth_token')

步骤 3:在 POST 请求中使用令牌制作卡片。

这一切都可以正常工作几分钟,然后在尝试再次使用它时出现错误:

requests_oauthlib.oauth1_session.TokenRequestDenied: Token request failed with code 500, response was 'token not found'.

我以为那个令牌是永远存在的?我仍然可以在 Trello 上的帐户详细信息下看到:

read and write access on all your boards
read and write access on all your teams
Approved: today at 6:30 AM
Never Expires
4

2 回答 2

0

在令牌中设置过期长过期时间,例如在 2099 中过期,类似这样

于 2019-11-12T14:31:57.620 回答
0

已解决 - 我做的一切都是正确的,只是第 2 步应该只做一次,而不是每次都做。我以为我必须为每个新请求生成一个新令牌,但在'token ='行生成的令牌实际上可以保存并永久使用。

于 2019-11-13T12:10:39.963 回答