我的公司使用NotificationHub将推送通知发送到我们由Firebase控制台控制的应用程序之一。最近,Firebase 正在弃用其 GCM 旧端点,并希望在 6 月 20 日之前迁移到 FCMV1 端点。所以我们当前的应用程序需要在后端进行更新,但我看到 azure notification hub 也有 Rest API 支持,所以我试图寻找文档,但我没有得到太多有用的文档。
curl --location 'https://{ourNotificationHub}.servicebus.windows.net/{customHubName}/registrations' \ --header 'Authorization: SharedAccessSignature sr=https%3a%2f%2fNotificationHub-test%2fhubNaem&sig=7OHJXs6wcK4CXELfl72tt4DleNtAfSCleytGeLR6RY%3D&se=1714863748&skn=DefaultFullSharedAccessSignature' \ --header 'Content-Type: application/json' \ --data '{ "registrationId": "4qX-Od8lS0yKvX8V7ITP7X:APA91bH8qOTNvMNNFI6fljFb6iI_KgSRqIuYldu8zNPK1n-Kn-xrgy2HlKdCwUsUK8yROxBifDzMgwpYkwIdZQl-YX0_R_HhyODwKGF65lqluFIhZ9V9Orq5k6oDnN1gZXfyd5WjcKf_", "platform": "fcmV1", "tags": ["PAIR-ID_5271"] }'
但是它不起作用,你能指出我正确的文档吗?我正在寻找支持 JSON 的请求,我找到了 XML 请求,但想要用于注册设备、向设备发送通知、更新注册、删除注册的 JSON 数据类型文档,您可以提供一些吗?带有工作代码的示例会有所帮助
提前致谢
我尝试过使用它已注册的 XML。但是当我发送消息时,它失败并显示 registartionId
最近,firebase 正在弃用其 GCM 旧端点,并希望在 6 月 20 日之前迁移到 FCMV1 端点。
要使用 JSON 注册设备,您需要向适当的端点发出 HTTP POST 请求。使用 Azure 通知中心 REST API 创建 FCM(Firebase 云消息传递)设备的注册:
curl --location 'https://{yourNamespace}.servicebus.windows.net/{yourHubName}/messages' \
--header 'Authorization: SharedAccessSignature sr=https%3a%2f%2f{yourNamespace}%2f{yourHubName}&sig=yourSasToken&se=1714863748&skn=DefaultFullSharedAccessSignature' \
--header 'Content-Type: application/json' \
--data '{
"data": {
"message": "Hello from Azure Notification Hubs!"
},
"target": {
"tag": "PAIR-ID_5271"
}
}'
axios
库为 FCM 设备创建注册。代码:
const axios = require('axios');
const namespace = '{yourNamespace}';
const hubName = '{yourHubName}';
const sharedAccessSignature = 'yourSharedAccessSignature'; // Replace with your actual SAS token
const registrationData = {
registrationId: '4qX-Od8lS0yKvX8V7ITP7X:APA91bH8qOTNvMNNFI6fljFb6iI_KgSRqIuYldu8zNPK1n-Kn-xrgy2HlKdCwUsUK8yROxBifDzMgwpYkwIdZQl-YX0_R_HhyODwKGF65lqluFIhZ9V9Orq5k6oDnN1gZXfyd5WjcKf_',
platform: 'fcmV1',
tags: ['PAIR-ID_5271']
};
axios.post(`https://${namespace}.servicebus.windows.net/${hubName}/registrations`,
registrationData,
{
headers: {
Authorization: `SharedAccessSignature sr=https%3a%2f%2f${namespace}%2f${hubName}&sig=${sharedAccessSignature}&se=1714863748&skn=DefaultFullSharedAccessSignature`,
'Content-Type': 'application/json'
}
})
.then(response => {
console.log('Device registered successfully:', response.data);
})
.catch(error => {
console.error('Error registering device:', error.message);
});
参考: