Thanks, Pierre. The 'title' and 'body' keys in the 'data' payload section did the trick. I'm not getting any badge or sound (yet) - still looking into it.
Here's a LiveCode version for anyone interested (and a little json encoder)

on mouseUp
   # devices to send to (up to 1000)
   put "<your device token>" into tTokenA[1]

   # data element of payload
   put "New updates available" into tDataA["title"]
   put "There are 3 new updates..." into tDataA["body"]
   put 3 into tDataA["badge"]
   put "default" into tDataA["sound"]
   put "100" into tDataA["score"]
   put "35" into tDataA["time"]

   # build payload
   put tDataA into tPayloadA["data"]
   put tTokenA into tPayloadA["registration_ids"]
   put "3" into tPayloadA["badge_value"]
   put "SplashCloud" into tPayloadA["collapse_key"]
   jsonEncode tPayloadA, tPayload

   # headers
   put "Content-Type: application/json" & LF into tHeaders
   put "Authorization: key=<your key>" & LF after tHeaders
   set the HTTPHeaders to tHeaders

# had a couple of errors that were resolved by setting/resetting this flag :/
   #libUrlSetSSLVerification true

   # send the notification
   post tPayload to url "https://android.googleapis.com/gcm/send";
   put it into tResponse
   put the result into tResult
   put the seconds & LF & tResponse & LF & LF & tResult
end mouseUp


# encode array in JSON format
command jsonEncode @pArray, @pJson, pDeep
   if pDeep = empty then put empty into pJson
   put the keys of pArray into tKeys
   repeat for each key tKey in pArray
      if tKey is not an integer then
         put true into tTextKeys
         exit repeat
      end if
   end repeat
   if tTextKeys then
      put "{" into tOpen
      put "}" into tClose
   else
      put "[" into tOpen
      put "]" into tClose
   end if
   put tOpen after pJson
   put 0 into tIndex
   repeat for each line tKey in tKeys
      add 1 to tIndex
      if tIndex > 1 then put comma after pJson
      if tTextKeys then put quote & tKey & quote & colon after pJson
      put pArray[tKey] into tVal
      if tVal is an array then
         jsonEncode tVal, pJson, true
      else if tVal is a number or tVal  is a boolean then
         put tVal after pJson
      else if tVal = empty then
         put "null" after pJson
      else
         replace quote with "\" in tVal
         replace "\" with "\\" in tVal
         replace "/" with "\/" in tVal
         replace numToChar(8) with "\b" in tVal
         replace numToChar(9) with "\t" in tVal
         replace numToChar(10) with "\n" in tVal
         replace numToChar(12) with "\f" in tVal
         replace numToChar(13) with "\r" in tVal
repeat for each item tCode in "0,1,2,3,4,5,6,7,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" replace numToChar(tCode) with "\u" & format("%04X", tCode) in tVal
         end repeat
         put quote & tVal & quote after pJson
      end if
   end repeat
   put tClose after pJson
end jsonEncode


On 30/03/2013 19:45, Pierre Sahores wrote:
This script works ok in about displaying what's needed instead of "Notification 
received" ($abstract) :

<?php

$registrationIDs        = Array(###devices###);
$title                          = "###title###";
$abstract                       = "###abstract###";
$payload                        = "###payload###";
$badge                          = "###badge###";
$apiKey                         = "###authent###";
$url                            = "https://android.googleapis.com/gcm/send";;

$fields = array(
        'registration_ids' => $registrationIDs,
        'collapse_key' => 'abcdef',
        'data' => array('title'      => $title,
                                        'alert'         => $abstract,
                                        'body'          => $abstract,
                                        'payload'       => $payload,
                                        'badge'         => intval($badge),
                                        'sound'         => 'default'
                                        )
);

$headers = array('Authorization: key=' . $apiKey, 'Content-Type: 
application/json');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

$result = curl_exec($ch);

curl_close($ch);

echo $result;

?>
but, on the other side, i can't get any sound to play when the message arrives 
on the device. Any toughs welcome :-)

Best,

Le 30 mars 2013 à 19:11, John Craig a écrit :

I've added iOS and Android push notifications to a stack I've been working on.  
When sending notifications to my android device, the message displayed when the 
notification arrives is 'Notification received'.  Does anyone know how to 
change (if possible) this message to something more meaningful - I've not found 
this so far in google's docs.

TIA

John.

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
--
Pierre Sahores
mobile : 06 03 95 77 70
www.sahores-conseil.com


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode



_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to