ใช้งาน OneSignal ส่ง Push Notification 2 : ( ใช้ php ส่งข้อมูลจาก Server ของเราเอง )

ตอนที่แล้วพูดถึงการ Config บนหน้าเว็บของ OneSignal และการติดตั้ง Plugins ใน Unity
คำถามที่ตามมาคือถ้าเกิดว่าเราต้องการสร้างหน้า Html Template สำหรับการส่งข้อมูล
โดยที่ไม่ไปใช้หน้า Admin Panel ของ OneSignal จะต้องทำอย่างไร
อ่านตอนแรกก่อน
สำหรับ OneSignal แล้วจะมี Rest API เปิดให้ Developer ใช้งานส่วนนี้อยู่แล้ว

วิธีการส่งก็ง่าย ๆ ครับ ใช้เพียงแค่ app_id และ api_key ที่เราสร้างไว้ สร้างไฟล์ .php
กำหนดค่า id และ key ต่าง ๆ ให้ถูกต้องตามที่เราได้สร้างไว้ในขั้นตอนแรก จากนั้นก็ใช้คำสั่ง curl
ใน php จัดการส่ง push notification ไปยังเครื่องที่เรากำหนดไว้ในหน้า dashboard ของ onesignal
$API_URL = "https://onesignal.com/api/v1/notifications";
$APP_ID = 'your one signal app id';
$API_KEY = 'your one signal api key';
$message = 'Hello OneSignal'; // ข้อความที่เราต้องการส่ง
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $API_URL);
$headers = array(
'Content-type: application/json',
'Authorization: Basic '.$API_KEY,
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"app_id\":\"".$APP_ID."\",
\"isIos\": true,
\"isAndroid\":true,
\"included_segments\": [\"All\"],
\"contents\": {\"en\":\"".$message."\"}}");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
เราสามารถเพิ่มพารามิเตอร์ การตั้งค่าต่าง ๆ เข้าไปในส่วนของ CURLOPT_POSTFIELDS
จากตัวอย่างจะเป็นการส่งไปทุก segments ทั้ง iOS และ Android
ตัวอย่างเช่น ถ้าต้องการเพิ่มให้แอพของเราแสดง Badge Number
ให้เพิ่มตัวแปร ios_badgeType = Increase คือบวก Badge ขึ้นไป
และเพิ่มตัวแปร ios_badgeCount = 1 คือบวกขึ้นไปที่ละ 1
ก็จะได้โค๊ดในส่วนของ CURLOPT_POSTFIELDS ดังนี้ครับ
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"app_id\":\"".$APP_ID."\",
\"ios_badgeType\":\"Increase\",
\"ios_badgeCount\":\"1\",
\"isIos\": true,
\"isAndroid\":true,
\"included_segments\": [\"All\"],
\"contents\": {\"en\":\"".$message."\"}}");
ท่านนักพัฒนาสามารถเข้าไปดูพารามิเตอร์ต่าง ๆ เพิ่มเติมได้ที่เว็บไซต์หลักและหน้าเอกสารการใช้งานของ onesignal One Signal Documentation
ในส่วนของ SERVER REST API