Archive for

July 2009

Code for posting an iPhone 3.0 push notification to UrbanAirship from the Google App Engine.

See it syntax highlighted here:  http://pastie.org/551253#
## Sample code for using the GoogleAppEngine (Python) with UrbanAirship to send# out iPhone (OS3.0) Push Notifications.## @killingmichael # http://twitter.com/killingmichael## Based on code by:  http://twitter.com/bryanbartow#  #import loggingfrom django.http import HttpRequestimport urllibimport base64from google.appengine.api import urlfetchfrom django.utils import simplejsondef sendApplePushNotification(name):    # via UrbanAirShip    logging.info("sending notification... "+name)    UA_API_APPLICATION_KEY = 'APPLICATION KEY GOES HERE'  #Application Key from UrbanAirship -> App Menu -> App Details to Display    UA_API_APPLICATION_PUSH_SECRET = 'APPLICATION PUSH SECRET GOES HERE'  #Application Secret from UrbanAirship -> App Menu -> App Details to Dispaly.    url = 'https://go.urbanairship.com/api/push/'    auth_string = 'Basic ' + base64.encodestring('%s:%s' % (UA_API_APPLICATION_KEY,UA_API_APPLICATION_PUSH_SECRET))[:-1]    alertMsg = "Hello from " + name    badgeNumber = 3    deviceToken = "DEVICE TOKEN GOES HERE"    body = simplejson.dumps(   {"aps": {"badge": badgeNumber, "alert": alertMsg}, "device_tokens": [deviceToken]}  )    data = urlfetch.fetch(url, headers={'content-type': 'application/json','authorization' : auth_string}, payload=body,method=urlfetch.POST)    if data.status_code == 200:        logging.info("Remote Notification successfully sent to UrbanAirship "+str(data.status_code))    elif data.status_code == 400:        logging.error("Remote Notification not sent! Do something smart now or not :) "+str(data.status_code))

Posted