Search code examples
pythondjangopush-notificationapple-push-notificationsdjango-1.2

iphone push notifications passphrase issue (pyAPns)


I'm trying to implement push notifications for iphone based on PyAPNs

When I run it on local but it blocks and prompts me to enter the passphrase manually and doesn't work until I do

I don't know how to set it up so to work without prompt

This is my code:

from apns import APNs, Payload
import optparse
import os


certificate_file = here(".." + app.fichier_PEM.url   )        
token_hex = '0c99bb3d077eeacdc04667d38dd10ca1a'
pass_phrase = app.mot_de_passe



apns = APNs(use_sandbox=True, cert_file= certificate_file)
payload = Payload(alert = message.decode('utf-8'), sound="default", badge=1)
apns.gateway_server.send_notification(token_hex, payload)


# Get feedback messages
for (token_hex, fail_time) in apns.feedback_server.items():
    print "fail: "+fail_time

Solution

  • When you create a .pem file without phrase specify -nodes

    To Create .pem file without phrase

    openssl pkcs12 -nocerts -out Pro_Key.pem -in App.p12 -nodes
    

    To Create .pem file with phrase

    openssl pkcs12 -nocerts -out Pro_Key.pem -in App.p12
    

    If you have a .pem file with password you can get rid of its password for PyAPNs using the following

    openssl rsa -in haspassword.pem -out nopassword.pem
    

    Refer

    for make certificates and other configurations.

    Some Python library for interacting with the Apple Push Notification service (APNs)