我通过自己编写的网站在线销售产品。为了管理我的履行流程,在进行购买时,我希望我的应用程序自动在 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