2017-04-26 10 views
1

Lyft rides Python APIを使用してLyftデータにアクセスしようとしています。具体的には、ride estimate endpointにアクセスしようとしています。Lyft APIのスクリプトによる3要素認証の自動化

from lyft_rides.auth import ClientCredentialGrant 
from lyft_rides.session import Session 
from lyft_rides.client import LyftRidesClient 

auth_flow = ClientCredentialGrant(client_id=MY_ID, client_secret=MY_SECRET, scopes="public") 
session = auth_flow.get_session() 
client = LyftRidesClient(session) 

response = client.get_cost_estimates(start_latitude=start_lat, start_longitude=start_long, end_latitude=end_lat, end_longitude=end_long) 

しかし、レスポンスデータの急増率でもサージ時間中、常に0ある、と私は3本足の認証を利用していないよので、それはだと診断されました。ユーザ固有のエンドポイントにアクセスするためlyft developer docs

3-脚流から

乗る 要求またはその他のアクセスユーザーデータを作成するには、ユーザーがあなたに アクセス権を付与する必要があります。 Lyftアカウントを持っていないユーザーには、次の手順で指示された場合は 新しいアカウントを作成するよう求められます。 python docsから

認証

あなたは自分の代わりに要求 を行うためにLyftのユーザーのアカウントにアクセスする必要がある場合は、「3を通過します「脚式」流れとなる。この場合、 ユーザーは、 OAuth 2.0認証コードフローを通じてアプリケーションへのアクセスを許可する必要があります。 Lyft APIドキュメントを参照してください。

承認コードフローは、2段階の承認プロセスです。 の最初の手順では、ユーザーがあなたのアプリを承認し、2番目の はLyftからOAuth 2.0アクセストークンをリクエストする必要があります。このプロセス は、ユーザーの代わりに行動を取ったり、 の情報にアクセスしたい場合には必須です。

from lyft_rides.auth import AuthorizationCodeGrant 
auth_flow = AuthorizationCodeGrant(
    YOUR_CLIENT_ID, 
    YOUR_CLIENT_SECRET, 
    YOUR_PERMISSION_SCOPES, 
) 
auth_url = auth_flow.get_authorization_url() 

彼らはあなたの アプリケーションへのアクセスを許可することができauth_urlにユーザーをナビゲートします。その後、 形式のREDIRECT_URL?code = UNIQUE_AUTH_CODEのredirect_urlにリダイレクトされます。このredirect_urlを使用して セッションを作成し、LyftRidesClientを開始します。

session = auth_flow.get_session(redirect_url) 
client = LyftRidesClient(session) 
credentials = session.oauth2credential 

安全なデータストアに資格証明書情報を保持し、ユーザーに代わって メイクAPI呼び出しにそれらを再利用します。 SDKは LyftRidesClientを使用してAPIリクエストを行うと自動的にトークン を更新します。

質問

私は、スクリプト内のpython要求を自動化しようとしています。認証の第3段階で手動でURLを訪問してコードを取得する必要がある場合、スクリプトを使用してこれを行うことは可能でしょうか?

答えて

1

[完全な開示:私はLyftの開発者の支持者の一人です]そのデータを取得するための

唯一の方法は、(そのことについて申し訳ありません)rides.request範囲は3本足のOAuthのフローをある要求することです。ただし、最初の承認の一部としてofflineの範囲を求める場合は、この外部認証を1回のみ要求する必要があります。あなただけの、このスクリプトを使用している場合

https://developer.lyft.com/docs/authentication#section-step-5-refreshing-the-access-token

ローカルに私がお勧めしたい本を通過:あなたはスコープが最初に要求されたことがある場合は、ここで概説し、外部URLの入力を求められませとして、あなたはrefresh_token Sを使用することができますあなたのトークンが期限切れになったら、あなたのスクリプトにリフレッシュ・トークン・ロジックを構築します。希望が助けてくれる!

関連する問題