найдено.
подписал его с RS256 на JWT.io с параметрами
HEADER:
{"alg": "RS256", "typ": "JWT"," kid ":" your_private_key_id "}
PAYLOAD:
{" iss ":" your_client_email_of_service_account "," sub ":" your_client_email_of_service_account "," aud ":" 10111012 * "scope": "https://www.googleapis.com/auth/devstorage.read_only"," iat ": current_unix_time," exp ": current_unix_time + 3600}
VERIFY SIGNATURE
your_private_key в последнем поле (без \ n)
получил закодированный ключ
, а затем
POST / oauth2 / v4 / token HTTP / 1.1
Хост: www.googleapis.com
Content-Type: application / x-www-form-urlencoded
Cache-Control: без кэширования
grant_type = urn% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-type% 3Ajwt-Носитель и утверждение = ENCODED_KEY_FROM_JWT.IO
, и я получил ответ
{
"access_token": "ya21.c.ElrSBodwuWANeh7Q0-zlXpOxqm9-uEszPElsY2tvoG5aPxRgOkasN5G2sMgj3iosPVbRYk1wXw_DcBnm2FtuNBlZpv_wCC0YS5pWMykR8Ouf5CZg-8OK842rvfk",
"expires_in": 3600,
"token_type": "Bearer"
}
также не забудьте дать привилегии вашей учетной записи службы для чтенияв хранилище