Using CodeIgniter cURL to send a push notification via UrbanAirship Using CodeIgniter cURL to send a push notification via UrbanAirship curl curl

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";    }}

Ref : http://blog.jamesbaca.net/?p=385