Я пытаюсь использовать API Python Lyft rides для доступа к данным 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, даже в часы всплеска, и я установил, что это связано с тем, что я не использую трехэтапную аутентификацию.
Из документов Lyft для разработчиков,
Трехэтапный поток для доступа к конечным точкам пользователя.
Чтобы отправлять запросы на поездки или иным образом получать доступ к пользовательским данным, пользователь должен предоставить вам доступ. Пользователям, у которых нет учетной записи Lyft, будет предложено создать новую учетную запись, если они будут направлены через следующий процесс.
Авторизация
Если вам нужен доступ к учетной записи пользователя Lyft, чтобы делать запросы от его имени, вы пройдете через «трехсторонний» поток. В этом случае вам потребуется, чтобы пользователь предоставил доступ к вашему приложению через поток кода авторизации OAuth 2.0. См. документацию Lyft API.
Поток кода авторизации представляет собой двухэтапный процесс авторизации. На первом этапе пользователь авторизует ваше приложение, а на втором — запрос токена доступа OAuth 2.0 у Lyft. Этот процесс является обязательным, если вы хотите выполнять действия от имени пользователя или получать доступ к его информации.
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 в формате REDIRECT_URL?code=UNIQUE_AUTH_CODE. Используйте этот redirect_url для создания сеанса и запуска LyftRidesClient.
session = auth_flow.get_session(redirect_url)
client = LyftRidesClient(session)
credentials = session.oauth2credential
Храните учетные данные в безопасном хранилище данных и повторно используйте их для вызовов API от имени вашего пользователя. SDK будет автоматически обрабатывать обновление токена при отправке запросов API с помощью LyftRidesClient.
Вопрос
Я пытаюсь автоматизировать запрос python в скрипте. Учитывая, что 3-й этап аутентификации требует ручного посещения URL-адреса и получения кода, возможно ли сделать это с помощью скрипта?