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

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

One Signal php API

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

อ่านตอนแรกก่อน

ใช้งาน OneSignal ส่ง Push Notification

สำหรับ OneSignal แล้วจะมี Rest API เปิดให้ Developer ใช้งานส่วนนี้อยู่แล้ว
php onesignal push notification

วิธีการส่งก็ง่าย ๆ ครับ ใช้เพียงแค่ 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