По сути, я хочу иметь возможность отправить уведомление pu sh для определенного c зарегистрированного устройства (с помощью тега) в Azure Центр уведомлений, который затем отправит это уведомление на устройство. У меня есть некоторый код c#, который сделает это, но я бы хотел использовать API, если это возможно.
Я нашел статью (компьютер перезагружен, но у меня нет ссылки), которая объяснил, как отправлять уведомления с помощью API, но похоже, что он отправляет уведомление на каждое устройство, зарегистрированное в хабе, поэтому я хочу посмотреть, будет ли легко изменить тело или даже сценарий предварительного запроса, чтобы включить спецификацию c тег устройства.
Или, если кто-нибудь из вас, умных людей, знает о более простом способе сделать это через API, тогда я весь в ушах.
Вот мой код (взят из Почтальона), который В настоящее время у меня есть отправка уведомления всем устройствам-концентраторам.
Конечная точка POST : https: // {namespace_name} .servicebus. windows .net / {hub_name} / messages /? api-версия = 2015-01
Заголовки :
- Авторизация - {{azure -authorization}}
- Content-Type - application / json
- ServiceBusNotification-Format - gcm
* 1 024 *
Тело запроса :
{"data":
{
"gcm.notification.body":"Hi",
"gcm.notification.title":"Hi",
}
}
Сценарий предварительного запроса :
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);
return sasToken;
}
postman.setEnvironmentVariable('azure-authorization', getAuthHeader(request.url,"DefaultFullSharedAccessSignature", "<full_shared_access_signature>"));
postman.setEnvironmentVariable('current-date',new Date().toUTCString());