如何从 Postman 向 android 设备发送 Ms Azure 推送通知

How to send Ms Azure push notifications to android device from Postman

我正在尝试使用 Postman 将 Azure 推送通知发送到 android 设备。为了实现这一点,我在 microsoftDocs 中看到了 post,但是文档说 This API 还不支持 Firebase Cloud Messaging (FCM)。 有吗使用 MsAzure

从 postman 发送 FCM 推送通知的任何方式

终于找到解决方案

URL

https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/?api-version=2015-01

参数

  • Headers

    Authorization                   {{azure-authorization}}
    Content-Type                    application/json
    ServiceBusNotification-Format   gcm
    
  • Body(Body根据你的情况而定,无需维护如下)

    {"data":{"gcm.notification.body":"Hi", "gcm.notification.title":"Hi"}}
    
  • Pre-request 脚本

    function getAuthHeader(resourceUri, keyName, key) {
    
        var d = new Date();
        var sinceEpoch = Math.round(d.getTime() / 1000);
        var expiry = (sinceEpoch + 3600);
        var stringToSign = encodeURIComponent(resourceUri) + '\n' + expiry;
        var hash = CryptoJS.HmacSHA256(stringToSign, key);
        var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
        var sasToken = 'SharedAccessSignature sr=' + encodeURIComponent(resourceUri) + '&sig=' + encodeURIComponent(hashInBase64) + '&se=' + expiry + '&skn=' + keyName;
        console.log(sasToken);
        alert(sasToken);
    
        return sasToken;
    }
    postman.setEnvironmentVariable('azure-authorization', getAuthHeader(request.url,"DefaultFullSharedAccessSignature", "xxxxxxxxxxxxxxxxxxxxxx"));
    postman.setEnvironmentVariable('current-date',new Date().toUTCString());
    

在上面的代码(Pre-request 脚本)中,我们必须按照以下步骤更新 DefaultFullSharedAccessSignature

转到 Azure 门户 |访问政策 |复制 DefaultFullSharedAccessSignature 并将一些内容粘贴到 |从那里复制 SharedAccessKey

图片供参考

图一:

图二:

图3: