Using CodeIgniter cURL to send a push notification via UrbanAirship
Have you set your curl config to trust the ssl certificate of the site you are trying to connect? First try with this
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
and if it works - that's the problem. Then you should setup your curl connection properly adding particular certificate.
This code in PHP, Urbanairship
, curl
worked for me:
define ('URBAN_APP_MASTERKEY', XXXXXX);define ('URBAN_APIKEY',XXXXX);define ('URBAN_APP_SECRETKEY',XXXXXX);define('PUSHURL', 'https://go.urbanairship.com/api/push/');$contents = array();$contents['badge'] = "1";$contents['alert'] = "Howdy, doody";$contents['sound'] = "cat.caf";$devices = array('device_tokens');$push = array("aps" => $contents);$push['device_tokens'] = $devices;$json = json_encode($push);$url = PUSHURL;echo $json; //display the actual content$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_USERPWD, URBAN_APIKEY . ':' . URBAN_APP_MASTERKEY);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, "$json");curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));$output = curl_exec($ch);if($response['http_code'] != 200){ echo "Got negative response from server, http code: ". $response['http_code'] . "\n";}else{ echo "Wow, it worked!\n"; }curl_close($ch);
Just use normal curl if you are not familiar with Codeigniter !
public function pushNotification(){ // Urban AirShip Doc : http://docs.urbanairship.com/connect/android_push.html // create the contents of the android field // sample JSON => {"audience": "all", "notification": {"alert": "Hello!"}, "device_types": ["android"]} $android = array(); $android['audience'] = "all"; $android['notification'] = array('alert'=>'Hello !'); $android['device_types'] = array("android"); // convert the dictionary to a json string $data = json_encode($android); // open connection $ch = curl_init(); // the url and credentials for posting to urban airship $url = 'https://go.urbanairship.com/api/push/'; $username = "YourAPIkey"; $password = "YourMasterSecretKey"; // set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Accept: application/vnd.urbanairship+json; version=3;')); curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // execute post $result = curl_exec($ch); $arrayResult=json_decode($result); // close connection $res = curl_close($ch); if($arrayResult->ok == 1){ print "Success"; } else { print "Error"; }}