使用 REST API 调用将 Azure 通知中心从使用 GCM 迁移到 FCM

问题描述 投票:0回答:1

我的公司使用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

javascript node.js firebase azure azure-notificationhub
1个回答
0
投票

最近,firebase 正在弃用其 GCM 旧端点,并希望在 6 月 20 日之前迁移到 FCMV1 端点。

enter image description here

  • 是的,您需要更新后端代码才能使用新的 API 端点和身份验证方法。

要使用 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"
         }
     }'
  • 使用 Node.js 和
    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);
    });

参考:

© www.soinside.com 2019 - 2024. All rights reserved.