我正在尝试使用Lyft rides python API 来访问 Lyft 数据。具体来说,我正在尝试访问行程估算端点。
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-legged 身份验证。
来自lyft 开发者文档,
用于访问用户特定端点的 3 条腿流。
要提出乘车请求或以其他方式访问用户数据,用户必须授予您访问权限。如果没有 Lyft 账户的用户被引导通过以下流程,系统将提示他们创建一个新账户。
授权
如果您需要访问 Lyft 用户的账户才能代表他们提出请求,您将经历“三足”流程。在这种情况下,您需要用户通过 OAuth 2.0 授权代码流程授予对您的应用程序的访问权限。请参阅 Lyft API 文档。
授权代码流程是一个两步授权过程。第一步是让用户授权您的应用,第二步是从 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 请求。鉴于身份验证的第三阶段需要手动访问 url 并获取代码,是否可以通过脚本执行此操作?