push-notify-apn alternatives and similar packages
Based on the "push" category.
Alternatively, view push-notify-apn alternatives based on common mentions on social networks and blogs.
-
push-notify
A server-side library in Haskell for sending push notifications to devices running different OS. -
push-notify-ccs
A server-side library in Haskell for sending push notifications to devices running different OS. -
push-notify-general
A general library for sending/receiving push notif. through dif. services.
Access the most powerful time series database as a service
Do you think we are missing an alternative of push-notify-apn or a related project?
README
push-notify-apn
push-notify-apn is a library and command line utility that can be used to send push notifications to mobile devices running iOS. Push notifications are small messages that can be sent to apps on smart phones and tablets without the need to keep open a long lived TCP connection per app, dramatically reducing the power consumption in standby mode.
The library is still in an experimental state. Bug and success reports as well as feature and pull requests are very welcome.
Sending a message is as simple as:
let sandbox = True -- Development environment
maxParallel = 10 -- Number of parallel connections to
-- the APN Servers
session <- newSession "my.key" "my.crt"
"/etc/ssl/ca_certificates.txt" sandbox
maxParallel "my.bundle.id"
let payload = alertMessage "Title" "Hello From Haskell"
message = newMessage payload
token = base16EncodedToken "the-token"
success <- sendMessage session token payload
print success
command line utility
The command line utility can be used for testing your app. Use like this:
sendapn -c ../apn.crt -k ../apn.key -a \
/etc/ssl/certs/ca-certificates.crt -b your.bundle.id -s \
-t your-token -m "Your-message"
The -s flag means "sandbox", i.e., for apps that are deployed in a development environment.
You can also use an interactive mode, where messages are read from stdin in this format:
token:sound:title:message
To use, invoke like this:
stack exec -- sendapn -k ~/greaselapn.key -c ~/greaselapn.crt -a /etc/ssl/cert.pem -b org.hcesperer.greasel -s -i
Do remove the -s flag when using the production instead of the sandbox environment.
credentials
apn.crt and apn.key are the certificate and private key of your APN certificate from apple. To extract them from a .p12 file, use openssl:
openssl pkcs12 -in mycredentials.p12 -out apn.crt -nokeys
openssl pkcs12 -in mycredentials.p12 -nodes -out apn.key -nocerts
ca-certificates.crt is a truststore that contains the root certificates that are used to verify the apn server's server certificates.