ใช้งาน 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