Je veux être en mesure d'envoyer des notifications push en utilisant Titanium et Arrow Push sur Android.Appcelerator/Titanium: Impossible d'envoyer une notification push à Android
j'ai suivi les instructions ici:
Subscribing to push notifications
Mon code simple se présente comme suit:
var CloudPush = require('ti.cloudpush');
var deviceToken = null;
// Works fine
CloudPush.retrieveDeviceToken({
success: function() {
deviceToken = e.deviceToken;
alert('deviceToken: ' + deviceToken);
subscribeToChannel();
},
error: function() {
alert('Failed to register for push notifications! ' + e.error);
}
});
// Never runs!!!
CloudPush.addEventListener('callback', function (evt) {
Ti.API.info('New notification!');
alert("Notification received: " + evt.payload);
});
// Works fine
function subscribeToChannel() {
Cloud.PushNotifications.subscribeToken({
device_token: deviceToken,
channel: 'general',
type: Ti.Platform.name
}, function (e) {
if (e.success) {
alert('Subscribed');
} else {
alert('Error:\n' + ((e.error && e.message) || JSON.stringify(e)));
}
});
}
La plupart de ce qui précède le code est similaire aux docs. L'aspect abonnement du code semble fonctionner parfaitement, car l'appareil de l'utilisateur apparaît également dans la section des appareils du tableau de bord Appcelerator.
Cependant quand il s'agit de l'envoi d'une notification, à partir du Tableau de bord Appcelerator, le mot "Failure" apparaît à côté de mon appareil Android.
Le message d'erreur complet lorsque vous sélectionnez le "?" l'icône est la suivante:
Type d'exception: GCM; Code d'erreur: 3103; Message d'erreur: RegistrationId (s) est null ou vide; Attrapé Exception: l'argument ne peut pas être nul
Je regardais cette erreur sur http://docs.appcelerator.com/arrowdb/latest/#!/guide/troubleshooting et tout ce qu'il dit est:
Le client GCM a fourni un enregistrement nul ou vide ID. Cette erreur est rare si vous utilisez le module Modules.CloudPush.
Ce qui n'est pas utile.
Qu'est-ce que je fais mal? Est-ce un bug sur le côté Accelerator.
Ce n'est pas le problème. Le jeton de périphérique est une variable globale est bien ici. En fait, il s'est même très bien abonné ainsi que sur la liste des appareils –
Je pense que le problème est là où j'ai mes informations d'identification que la documentation semble obsolète. Où avez-vous eu le vôtre? –
@YahyaUddin Ceci est un extrait des notes que j'ai prises quand j'ai travaillé l'année dernière - Créer un projet API Google La première étape consiste à créer un projet API Google et à activer son service GCM. Vous devez également obtenir un ID d'expéditeur GCM et créer une clé de serveur API Google. créer un nouveau projet à partir d'ici: https://console.developers.google.com/project GO TO API Gestionnaire de vérification des pouvoirs - créer clé API - le copier et le coller dans le tableau de bord Flèche menu, cliquez hamburger - IAM & Admin Paramètres - copier le numéro de projet - le coller dans le tableau de bord de l'Arrow Est-ce cela dont vous parlez? –