Notifications Push iOS et Python

de | 26 octobre 2011

Python programmation

Il arrive qu’on ait besoin de faire des tests lors de la mise en place de notifications push pour une application iPhone. Dans ce cas, il n’est pas toujours aisé d’utiliser un serveur.

C’est pourquoi nous allons voir comment faire pour créer un programme qui va vous permettre de faire ces test avec le langage Python.

Python a la grande force d’être disponible en standard sur Mac OS X ce qui facilite grandement le travail. Mais, si vous voulez tester cela sous Windows ou Linux / Unix, vous pouvez très facilement installer Python sur la plate-forme de votre choix.

Pour la partie notification push nous allons utiliser la librairie open source APNS Python Wrapper qui permet de réaliser l’envoi de notifications vers votre iPhone, iPod Touch ou iPad.

Pour débuter, rendez-vous sur le site de APNS Python Wrapper et télécharger la dernière version.

Une fois téléchargé, décompressez l’archive et ouvrez un terminal. Entrez dans le répertoire de l’archive (utilisez les commandes cd et ls) et installer la librairie à l’aide de la commande easy_install APNSWrapper. Une fois l’opération terminée vous pouvez créer votre programme d’envoi de notification.

Ouvrez maintenant votre éditeur de texte préféré et tappez le code suivant :

# importation des librairies
from APNSWrapper import *
import binascii

# Vous devez récupérer le "devicetoken" de votre iphone ou
# ipad directement depuis l'application 
# vous devez donc remplacer les xxxxxx par la bonne valeur
deviceToken = binascii.unhexlify('xxxxxxxxxxxxxxxxxxxxx')
# création du wrapper de notifications
# le premier paramètre : certificat pem nécessaire à l'envoi des notifications
# deuxième paramètre : indique si on doit utiliser la sandbox Apple
wrapper = APNSNotificationWrapper('apns-test.pem', True)
message = APNSNotification()
message.token(deviceToken)
# message qui doit apparaître avec la notification
message.alert("Une alerte push !")
# numéro du badge
message.badge(1)
# la notification doit émettre un son
message.sound()
wrapper.append(message)
wrapper.notify()

Et pour finir, voici un petit bout de code qui fonctionne bien pour trouver le device Token de votre iPhone avec un peu d’Objective-C :

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
NSString *deviceToken = [[[[devToken description]
stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
}

Vous pouvez maintenant exécuter votre programme python et admirer le résultat sur votre iPhone ou votre iPad. La vérification s’en trouve ainsi très simplifiée et ne nécessite pas de serveur.

Note : le device Token change si vous compilez votre application en mode « debug » ou « release ». Faites donc bien attention à cela lors de vos tests…

Si vous voulez plus d’informations sur la mise en place des notifications, vous pouvez aussi vous reporter à notre premier article consacré à easyApns et aux certificats pour le push.

Liens : APNS Python Wrapper et Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.