我正在尝试通过 Postman 使用 Firebase Cloud Messaging (FCM) 和新的 HTTP v1 API 设置和测试推送通知。我需要生成 OAuth 2.0 令牌来验证我的请求并向特定设备发送推送通知。我有 FCM 服务帐户 JSON 和设备令牌。有人可以指导我完成在 Postman 中进行设置的过程,包括如何生成 OAuth 2.0 令牌并格式化请求吗?
以下是我掌握的详细信息:
使用 Python 生成 OAuth 2.0 令牌并设置 Postman 请求以使用 FCM 的 HTTP v1 API 发送推送通知的步骤是什么?
我相信这可能对其他开发者有帮助。我会尝试尽可能简单地分解步骤。
第 1 步 - 下载 Firebase 私钥
Firebase 控制台 => 项目设置 => 服务帐户 => 生成新的私钥
第 2 步 - 使用 FCM 服务帐户凭据生成 OAuth 2.0 令牌。你可以用Python来生成它
import json
import jwt
import time
import requests # This requires the `requests` library
# Load the service account key JSON file
with open('path_to_your_service_account.json', 'r') as f:
service_account = json.load(f)
# Define the JWT payload
payload = {
'iss': service_account['client_email'],
'sub': service_account['client_email'],
'aud': 'https://oauth2.googleapis.com/token',
'iat': int(time.time()),
'exp': int(time.time()) + 3600,
'scope': 'https://www.googleapis.com/auth/firebase.messaging'
}
# Encode the JWT
encoded_jwt = jwt.encode(payload, service_account['private_key'], algorithm='RS256')
# Request an OAuth 2.0 token
response = requests.post('https://oauth2.googleapis.com/token', data={
'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer',
'assertion': encoded_jwt
})
oauth2_token = response.json()['access_token']
print(oauth_token)
如果您收到此错误
找不到算法“RS256”。你安装了加密技术吗
确保运行
pip install cryptography
这会将加密包安装到您的计算机上。
打印语句的格式为
ya29.ElqKBGN2Ri_Uz...HnS_uNreA
,这是 Oauth 2.0 令牌。
第 3 步 - Postman 配置,插入您在 postman 配置中找到的令牌
您可以从 firebase 项目的 url 获取您的项目 id
Method: POST
URL: https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send
Headers:
Content-Type: application/json
Authorization: Bearer {oauth2_token}
通知正文
"message": {
"token": "DEVICE_REGISTRATION_TOKEN",
"notification": {
"title": "Test Notification",
"body": "This is a test message from Postman."
}
}
}