私が書いたウェブサイトを通じてオンラインで製品を販売しています。フルフィルメント フローを管理するために、購入が行われたときにアプリが Trello ボードにカードを自動的に作成するようにします。
期限切れになることのないトークンを作成したと思っていたにもかかわらず、使用していたトークンが数分後に期限切れになることを除いて、すべて問題なく実行できました。
注文が入るたびに手動で認証することはできません。
トークンを生成するために私が書いたコードは次のとおりです。(Oauth1)。
ステップ 1 (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