我目前正在开发一个应用程序,该应用程序应该通过Firebase Cloud Messaging接收推送通知。要从服务器发送通知,我使用Google(Documentation)的HTTP v1 API。
要访问此API,我必须获得一个访问令牌,它实际上是一个OAuth 2.0令牌。按照文档页面上的描述,我收到了service account.json
文件,该文件的专用私钥存储在其他数据旁边。
现在服务器上几乎所有的模块,还有触发事件的模块,都是用perl编写的,因此,我面临着从该json创建一个有效的OAuth令牌(在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上没有找到适合我需求的模块。是否有人手头上有粘性来源或适当的自制解决方案?