Я сейчас занимаюсь разработкой приложения, которое должно получать push-уведомления через Firebase Cloud Messaging. Для отправки уведомлений с сервера я использую HTTP v1 API от Google ( Documentation ).
Чтобы получить доступ к этому API, мне нужно получить токен доступа , который буквально является токеном OAuth 2.0. После описания на странице документации я получил свой service account.json
файл, в котором обязательный закрытый ключ хранится рядом с другими данными.
Теперь почти все модули на сервере, а также модули, инициирующие события, написаны на Perl, поэтому я сталкиваюсь с проблемой создания действительного OAuth-токена из этого json, который выглядит примерно так в Perl:
{
"type": "service_account",
"project_id": "project-id",
"private_key_id": "some_number",
"private_key": "-----BEGIN PRIVATE KEY-----\n"very unreadable key"
=\n-----END PRIVATE KEY-----\n",
"client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}
Я все еще новичок в Perl и не нашел модуль на CPAN, который подходит для моих нужд. У кого-нибудь есть источник липкой жидкости под рукой или правильное самодельное решение?