diff --git a/application/controllers/Onesignal.php b/application/controllers/Onesignal.php new file mode 100644 index 0000000..555696d --- /dev/null +++ b/application/controllers/Onesignal.php @@ -0,0 +1,45 @@ +load->view('bko/view_bko_login', $data); + } + + public function message() { + $data = []; + $data["message"] = ""; + $data["segments"] = ""; + $data["push_message"] = ""; + $data["select_segments"] = array("Subscribed Users", "Active Users", "Inactive Users", "All"); + + if ($_SERVER['REQUEST_METHOD'] == "POST") { + $data["push_message"] = $this->input->post('push_message'); + $data["segments"] = $this->input->post('segments'); + if (trim($data["push_message"]) != "") { + $this->load->helper('OneSignal'); + $in = array( + "message" => $data["push_message"], + "included_segments" => $data["segments"] + ); + $out = onesignal_api($in); + if (is_array($out) && $out['result'] > 0) { + $data["message"] = "OneSignal API call success: ".$out["status"]; + } else { + $data["message"] = "OneSignal API call failed".$out["status"]; + } + $data["message"].= "
".json_encode($out["data"])."
"; + } else { + $data["message"] = "Missing push message!"; + } + } + $this->load->view('bko/view_bko_header', $data); + $this->load->view('bko/view_bko_onesignal', $data); + $this->load->view('bko/view_bko_footer', $data); + + } + +} \ No newline at end of file diff --git a/application/helpers/onesignal_helper.php b/application/helpers/onesignal_helper.php new file mode 100644 index 0000000..036ffe9 --- /dev/null +++ b/application/helpers/onesignal_helper.php @@ -0,0 +1,67 @@ + $OneSignalApp, + 'included_segments' => array($in["included_segments"]), // "Subscribed Users", + /* 'data' => array("foo" => "bar"), */ + 'contents' => array( + "en" => $in["message"] + ) + ); + + $fields = json_encode($fields); + //print("\nJSON sent:\n"); + //print($fields); + + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $OneSignalUrl); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + 'Accept: application/json', + 'Content-Type: application/json; charset=utf-8', + 'Authorization: Basic "'.$OneSignalKey."'")); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_HEADER, FALSE); + curl_setopt($ch, CURLOPT_POST, TRUE); + curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + + $response = curl_exec($ch); + curl_close($ch); + + //echo "
${response}
"; + + if ($response != "") { + $data = json_decode($response,true); + if (is_array($data) && count($data)>0) { + $out["data"] = $data; + if (array_key_exists("recipients",$data) && $data["recipients"] > 0 + && (!array_key_exists("errors",$data) || count($data["errors"]) < 1)) { + $out["status"] = "OneSignal API success: sent to ".$data["recipients"]." recipeint(s)"; + } else { + $out["status"] = "OneSignal API failure: ". + (array_key_exists("errors",$data)?json_encode($data["errors"]):"unknown error"); + } + } else { + $out["status"] = "Invalid OneSignal API response: ".$response; + } + } else { + $out["status"] = "Missing OneSignal API response"; + } + return $out; + } +} diff --git a/application/views/bko/common/bko_menu.php b/application/views/bko/common/bko_menu.php index 550a2f1..2880fce 100644 --- a/application/views/bko/common/bko_menu.php +++ b/application/views/bko/common/bko_menu.php @@ -139,7 +139,7 @@
  • Transfer Fee
  • Users Manager
  • Permissions
  • - +
  • OneSignal
  • diff --git a/application/views/bko/view_bko_onesignal.php b/application/views/bko/view_bko_onesignal.php new file mode 100644 index 0000000..39ff73f --- /dev/null +++ b/application/views/bko/view_bko_onesignal.php @@ -0,0 +1,80 @@ + +
    + + +
    +
    + + +
    +
    +
    OneSignal Message
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + + + + + +
    Send to
    Message
    +
    +
    +
    +
    + + +
    + + +
    + +
    + + +
    + +
    +
    +
    .
    +
    + +
    +
    + +
    + +
    + +
    +
    + +
    +
    + +
    + +
    + + +
    +
    + + + + +
    \ No newline at end of file