uniqush / uniqush-push

Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.

Home Page:http://uniqush.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Title in push notification

geniuscd opened this issue · comments

The following describes how to push a message to a subscriber.

Parameter Description
service Service Name.
subscriber Subscriber ID. Could be more than one subscriber. Comma separated. Asterisk (*) could be used as a wildcard to match any string
msg Optional. Message Body
ttl Optional. Time to live. How long (in seconds) the message should be kept on push service provider’s server if the device is offline
badge Optional. Badge
img Optional. Image
sound Optional. Sound
loc-key Optional. loc-key for APNS
loc-args Optional. loc-args for APNS. It is a comma-separated string.
action-loc-key Option. action-loc-key for APNS.
Reserved Parameter Any parameter whose name starts with “uniqush.” is reserved by Uniqush. Users should avoid using those parameter names.
User Defined Parameter Optional. Any other parameter is accepted which will be sent to mobile devices

Can we add a title? I know that push notification payload can also have a title, but it isn't listed here.
am I missing something?

alright, so you mean we have to edit the core plugin code and have another updated version (PR request?), or we can have a simple workaround? #192 ?

https://github.com/uniqush/uniqush-push/blob/master/srv/apns/push_service_test.go#L301-L313

A PR for srv/apns/payload.go (and probably GCM) would work.

Manually passing in JSON with the desired title, etc. for uniqush.payload.apns would also work as a workaround.

  • Updating uniqush.org documenting recent changes (and deploying) still needs to be done, which is why that option is not there.

ok great. I never wrote any go script before, I don't know how to compile it either :p
I will try to contribute as much as I can.
but please can you give us a curl example of the uniqush.payload.apns? coz I tried to write myself, and it didn't work, or at least I didn't knew how to write it.

Example of how to send a push with uniqush.payload.apns. Note that you may need to url encode if the url is built manually.

curl http://127.0.0.1:9898 -d service=myservicename -d subscriber=1234 -d uniqush.payload.apns='{"aps":{"alert":{"body":"message body","title":"message title"}}}'

With this example, on an iphone, the title "message title" shows up in bold, below the app name and above the message body.

The previewpush endpoint may also help you. If you provide any additional parameters, it will show you the JSON generated from those parameters

curl http://127.0.0.1:9898/previewpush -d pushservicetype=apns -d pushtype=message -d msg='message body'                             
{"code":"UNIQUSH_SUCCESS","payload":{"aps":{"alert":{"body":"message body"}},"pushtype":"message"}}


curl http://127.0.0.1:9898/previewpush -d pushservicetype=apns -d pushtype=message -d msg='message body' -d img=myimg 
{"code":"UNIQUSH_SUCCESS","payload":{"aps":{"alert":{"body":"message body","launch-image":"myimg"}},"pushtype":"message"}}


curl http://127.0.0.1:9898/previewpush -d pushservicetype=apns -d pushtype=message -d uniqush.payload.apns='{"aps":{"alert":{"body":"message body","title":"message title"}}}'
{"code":"UNIQUSH_SUCCESS","payload":{"aps":{"alert":{"body":"message body","title":"message title"}}}}

ok so the uniqush.payload.apns approach will not work according to this line of code
in order to support the title we should add only two lines of code after this line
case "title": alert["title"]= v
according to apple documentation

Things that I should do later:

  • Add gcm&fcm equivalent
  • Add unit tests for srv/apns/push_service_test.go