Не удается зарегистрировать устройства в центре уведомлений Azure с помощью серверной части Node.js - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь зарегистрировать устройство с помощью внутреннего узла Azure Mobile Services Node.js со следующим кодом:

var notificationHubService = azure.createNotificationHubService('<HubName>', '<Endpoint>');
var payload = {
    alert: 'Hello!'
};

function insert(item, user, request) {
    notificationHubService.createRegistrationId(function (error, registrationId, response) {
        if (!error) {
            notificationHubService.apns.createOrUpdateNativeRegistration(registrationId, item.Token, [item.id], function (error, response) {

                if (!error) {
                    console.log('Inside : createOrUpdateNativeRegistration' + response);
                    notificationHubService.apns.send(null, payload, function (error) {
                        if (!error) {
                            // notification sent

                            console.log('Success: Inside the notification send call to Hub.');

                        }
                    });

                }
                else {

                    console.log('Error in registering the device with Hub for Token: ' + item.Token + '>> ' + error);
                }

            });

        }
        else {
            console.log('Error in generating the registration Id' + error);
        }

    });
    request.execute();   
 }

Но я продолжаю получать следующую ошибку:

РЕДАКТИРОВАТЬ: Эта строка вызывает ошибку:

notificationHubService.apns.createOrUpdateNativeRegistration

 Error: 400 - One or more characters in device token is not a hexadecimal 

Токен создается с помощью плагина https://github.com/Telerik-Verified-Plugins/PushNotification cordova на клиенте, в результате чего получается следующий токен:

APA91bGiwjCSslyOjqIP4Cerf5LJFkDYAyVHpT0GdIEQ81z9LJMGkUAV0ScgL9ioOqL38ZFTuFHwQRP389OAOPcOGxp2MZHBbYR6BlL70xIW8jHU1ZsJIdtUoww1mCx4cWqmZzjErZDz

Я также попытался сгенерировать токен с помощью плагина https://github.com/phonegap/phonegap-plugin-push cordova на клиенте, в результате чего был получен следующий токен:

cF3dKfF5j14:APA91bEruizX883Aegix-UPyQHjCgyl1ZfoXoFQUhf3JH_A8W_iITk-SyEsBjnnWlvTgAONEspAkTpy8IonqvL0bYFGGm9jDj-Kbjf3bF_T0LFiQ2fUQIHcP1uHsiby3AcGi-dlL6aP6

Оба токена приводят к одной и той же ошибке.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 апреля 2018

Я хотел бы спросить разработчиков push-плагинов Telerik, как получается, что у них есть другой формат токенов, то есть между их токенами нет тире. Токен предоставляется FCM, APNS или WNS, и формат не может варьироваться от плагина к плагину.

Я бы только идентификатор из phonegap-plugin-push . Токен FCM, который я регулярно получаю с этим плагином, имеет следующий формат:

eb1-bYqMrQ8:APC97bHXxUTb_dbAK255ew4uvBR8gRDo-1_9RyEX_Be6WiRAy3qS5f1bIEWT2e8FtIBbWj_0x1ep2uo7H8TOG0hGc4Be4hBdx1VPcwn_Mrfbo8NscxjMJZfCZRLbGCE_mGPK_-1_rgh3

Я помню, у меня были некоторые проблемы, потому что когда я отправлял регистрационный идентификатор, он был изменен запросом AJAX (пропущены тире или что-то в этом роде), поэтому вы должны выполнить тройную проверку, чтобы сравнить получаемый вами идентификатор и тот, который вы получили. вы отправляете в Azure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...