В настоящее время я разрабатываю веб-компонент для авторизации кросс-клиента Google Api, как описано в этой статье. https://developers.google.com/identity/protocols/CrossClientAuth
Кроме того, среда, в которой я работаю, - это Rails, поэтому я использую gogle-api-client gem, как описано в этой статье https://developers.google.com/identity/protocols/OAuth2WebServer#handlingtheresponse
Код авторизации получается через приложение Android с использованием идентификатора веб-клиента и передается на веб-сайт api для его обмена. Мое использование драгоценного камня и кода для обмена выглядит следующим образом
auth_client = Google::APIClient::ClientSecrets.load("/path/to/client_secrets.json").to_
authorization
auth_client.code = code
auth_client.fetch_access_token!
Я также пробовал делать
auth_client = Google::APIClient::ClientSecrets.load("/path/to/client_secrets.json").to_
authorization
auth_client.update!(
:grant_type => 'authorization_code'
)
auth_client.code = code
auth_client.fetch_access_token!
Во всех случаях я получаю недопустимую ошибку гранта от Google без описания.
Я попытался создать URL-адреса, чтобы использовать другие инструменты api, такие как завиток и почтальон, и обойти драгоценный камень, используя игровые площадки google oauth без каких-либо успехов.
Было бы с благодарностью оценено любое понимание того, что может быть вызвано ошибками недопустимых грантов или как сгенерировать запросы на завивки для обмена токеном непосредственно с google за пределами драгоценного камня.