เอกสารนี้มีข้อมูลอ้างอิงสําหรับไวยากรณ์ HTTP ที่ใช้ในการส่ง ข้อความจากเซิร์ฟเวอร์แอปของคุณไปยังแอปไคลเอ็นต์ผ่าน Firebase Cloud Messaging
เมื่อใช้โปรโตคอล HTTP เดิม เซิร์ฟเวอร์แอปต้องส่งคำขอ HTTP ทั้งหมดไปยังปลายทางนี้
https://fcm.googleapis.com/fcm/send
พารามิเตอร์และตัวเลือกที่ใช้ได้มีดังนี้ หมวดหมู่กว้างๆ ต่อไปนี้
ไวยากรณ์ข้อความดาวน์สตรีม
ส่วนนี้แสดงไวยากรณ์สำหรับการส่งข้อความดาวน์สตรีมและการตีความ การตอบกลับ HTTP จาก Firebase Cloud Messaging
ข้อความ HTTP ดาวน์สตรีม (JSON)
ตารางต่อไปนี้แสดงเป้าหมาย ตัวเลือก และเพย์โหลดสำหรับข้อความ HTTP JSON
พารามิเตอร์ | การใช้งาน | คำอธิบาย | |
---|---|---|---|
เป้าหมาย | |||
to |
สตริง (ไม่บังคับ) |
พารามิเตอร์นี้จะระบุผู้รับข้อความ
ค่านี้อาจเป็นโทเค็นการลงทะเบียนของอุปกรณ์ หรือ
หรือหัวข้อเดียว (ขึ้นต้นด้วย
|
|
registration_ids | อาร์เรย์ของสตริง (ไม่บังคับ) |
พารามิเตอร์นี้จะระบุผู้รับข้อความมัลติแคสต์ ข้อความ ส่งไปยังโทเค็นการลงทะเบียนมากกว่า 1 รายการ
ค่าควรเป็นอาร์เรย์ของโทเค็นการลงทะเบียนที่จะส่ง
ข้อความมัลติแคสต์ อาร์เรย์ต้องมีอย่างน้อย 1 และไม่เกิน 1000
โทเค็นการลงทะเบียน หากต้องการส่งข้อความไปยังอุปกรณ์เครื่องเดียว ให้ใช้
พารามิเตอร์ อนุญาตให้ใช้ข้อความ Multicast โดยใช้รูปแบบ HTTP JSON เท่านั้น |
|
condition |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้ระบุนิพจน์เชิงตรรกะของเงื่อนไข กำหนดเป้าหมายของข้อความ เงื่อนไขที่รองรับ: หัวข้อ ซึ่งมีรูปแบบเป็น "yourTopic" ในหัวข้อ" ช่วงเวลานี้ ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ โอเปอเรเตอร์ที่รองรับ: |
|
notification_key เลิกใช้งาน |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้เลิกใช้งานแล้ว แต่ให้ใช้ |
|
ตัวเลือก | |||
collapse_key |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้เป็นตัวระบุกลุ่มข้อความ (เช่น โดยมี
ทั้งนี้ เราไม่รับประกันลำดับของการส่งข้อความ หมายเหตุ: อนุญาตให้ใช้คีย์ยุบที่แตกต่างกันได้สูงสุด 4 รายการในช่วงเวลาหนึ่ง ซึ่งหมายความว่า FCM จัดเก็บข้อความที่แตกต่างกัน 4 ข้อความต่อแอปไคลเอ็นต์ได้ในเวลาเดียวกัน หากคุณ เกินตัวเลขนี้ ไม่รับประกันว่าคีย์ยุบ 4 คีย์ที่ FCM จะเก็บไว้ได้ |
|
priority |
สตริง (ไม่บังคับ) | กำหนดลำดับความสำคัญของข้อความ ค่าที่ถูกต้องคือ "ปกติ" และ "สูง" ในแพลตฟอร์ม Apple สิ่งเหล่านี้จะสอดคล้องกับลำดับความสำคัญของ APN ที่ 5 และ 10 โดยค่าเริ่มต้น ระบบจะส่งข้อความแจ้งเตือนที่มีลำดับความสำคัญสูง และส่งข้อความข้อมูล ส่งโดยมีลำดับความสำคัญปกติ ลำดับความสำคัญปกติจะเพิ่มประสิทธิภาพให้ สิ้นเปลืองแบตเตอรี่และควรใช้งานเว้นแต่จำเป็นต้องนำส่งทันที สำหรับข้อความที่มีลำดับความสำคัญปกติ แอปอาจได้รับข้อความที่มี ความล่าช้าที่ไม่ได้ระบุ เมื่อคุณส่งข้อความที่มีลำดับความสำคัญสูง ระบบจะส่งข้อความนั้นทันทีและแอป แสดงการแจ้งเตือนได้ |
|
content_available |
ไม่บังคับ บูลีน | ในแพลตฟอร์ม Apple ให้ใช้ช่องนี้เพื่อแสดง |
|
mutable_content |
ไม่บังคับ, JSON บูลีน | ในแพลตฟอร์ม Apple ให้ใช้ช่องนี้เพื่อแสดง
|
|
time_to_live |
ไม่บังคับ หมายเลข | พารามิเตอร์นี้จะระบุระยะเวลา (เป็นวินาที) ที่จะเก็บข้อความไว้ในพื้นที่เก็บข้อมูล FCM หากอุปกรณ์ออฟไลน์อยู่ Time to Live สูงสุดที่รองรับคือ 4 สัปดาห์และค่าเริ่มต้นคือ 4 สัปดาห์ ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าอายุการใช้งานของข้อความ |
|
restricted_package_
(Android เท่านั้น) |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้จะระบุชื่อแพ็กเกจของแอปพลิเคชันที่ โทเค็นการลงทะเบียนต้องตรงกันจึงจะได้รับข้อความ | |
dry_run |
ไม่บังคับ บูลีน | พารามิเตอร์นี้เมื่อตั้งค่าเป็น ค่าเริ่มต้นคือ |
|
เพย์โหลด | |||
data |
ไม่บังคับ ออบเจ็กต์ | พารามิเตอร์นี้ระบุคู่คีย์-ค่าที่กำหนดเองของเพย์โหลดของข้อความ เช่น ในแพลตฟอร์ม Apple หากส่งข้อความผ่าน APN ข้อความนี้จะแสดงช่องข้อมูลที่กำหนดเอง หากส่งผ่าน FCM
ก็จะแสดงเป็นพจนานุกรมคีย์-ค่าใน ใน Android การดำเนินการนี้จะทำให้มี Intent เพิ่มเติมที่ชื่อ คีย์ไม่ควรเป็นคำที่สงวนไว้ ("from", "message_type" หรือคำใดๆ ที่ขึ้นต้นด้วย
"google" หรือ "gcm") อย่าใช้คำใดๆ ที่ระบุไว้ในตารางนี้
(เช่น ขอแนะนำให้ใช้ค่าในประเภทสตริง คุณต้องแปลงค่าในออบเจ็กต์หรือประเภทข้อมูลที่ไม่ใช่สตริง (เช่น จำนวนเต็มหรือบูลีน) เป็นสตริง |
|
notification |
ไม่บังคับ ออบเจ็กต์ | พารามิเตอร์นี้ระบุคู่คีย์-ค่าที่กำหนดไว้ล่วงหน้าและที่ผู้ใช้มองเห็นของ
เพย์โหลดการแจ้งเตือน โปรดดูรายละเอียดเกี่ยวกับการรองรับเพย์โหลดการแจ้งเตือน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อความการแจ้งเตือนและตัวเลือกข้อความ
ดู
ประเภทข้อความ หากมีการระบุเพย์โหลดการแจ้งเตือน หรือ
ตั้งค่าตัวเลือก content_available เป็น true สำหรับข้อความที่ส่งถึง Apple
อุปกรณ์ ข้อความจะส่งผ่าน APN หรือไม่ก็ส่งผ่าน
FCM
|
การรองรับเพย์โหลดการแจ้งเตือน
ตารางต่อไปนี้แสดงรายการของ ซึ่งใช้ในการสร้างข้อความแจ้งเตือนสำหรับ iOS และ Android
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
title |
สตริง (ไม่บังคับ) |
ชื่อการแจ้งเตือน ฟิลด์นี้จะไม่ปรากฏบนโทรศัพท์และแท็บเล็ต |
body |
สตริง (ไม่บังคับ) |
ข้อความเนื้อหาของการแจ้งเตือน |
sound |
สตริง (ไม่บังคับ) |
เสียงที่จะเล่นเมื่ออุปกรณ์ได้รับการแจ้งเตือน
สตริงที่ระบุไฟล์เสียงในแพ็กเกจหลักของแอปไคลเอ็นต์หรือใน
|
badge |
สตริง (ไม่บังคับ) |
ค่าของป้ายในไอคอนแอปหน้าจอหลัก หากไม่ระบุ ป้ายดังกล่าวจะไม่เปลี่ยนแปลง
หากตั้งค่าเป็น |
click_action |
สตริง (ไม่บังคับ) |
การดำเนินการที่เชื่อมโยงกับผู้ใช้คลิกการแจ้งเตือน
ตรงกับ |
subtitle |
สตริง (ไม่บังคับ) |
คำบรรยายของการแจ้งเตือน |
body_loc_key |
สตริง (ไม่บังคับ) |
คีย์ในสตริงเนื้อหาในทรัพยากรสตริงของแอปที่จะใช้ แปลข้อความเนื้อหาเป็นการแปลเป็นภาษาปัจจุบันของผู้ใช้
ตรงกับ โปรดดู ข้อมูลอ้างอิงคีย์ของเพย์โหลดและ การแปลเนื้อหาของการแจ้งเตือนระยะไกลเพื่อดูข้อมูลเพิ่มเติม |
body_loc_args |
ไม่บังคับ อาร์เรย์ JSON เป็นสตริง |
ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบใน
ตรงกับ โปรดดู ข้อมูลอ้างอิงคีย์ของเพย์โหลดและ การแปลเนื้อหาของการแจ้งเตือนระยะไกลเพื่อดูข้อมูลเพิ่มเติม |
title_loc_key |
สตริง (ไม่บังคับ) |
คีย์ของสตริงชื่อในทรัพยากรสตริงของแอปที่จะใช้ แปลข้อความชื่อตามการแปลเป็นภาษาปัจจุบันของผู้ใช้
ตรงกับ โปรดดู ข้อมูลอ้างอิงคีย์ของเพย์โหลดและ การแปลเนื้อหาของการแจ้งเตือนระยะไกลเพื่อดูข้อมูลเพิ่มเติม |
title_loc_args |
ไม่บังคับ อาร์เรย์ JSON เป็นสตริง |
ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบใน
ตรงกับ โปรดดู ข้อมูลอ้างอิงคีย์ของเพย์โหลดและ การแปลเนื้อหาของการแจ้งเตือนระยะไกลเพื่อดูข้อมูลเพิ่มเติม |
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
title |
สตริง (ไม่บังคับ) |
ชื่อการแจ้งเตือน |
body |
สตริง (ไม่บังคับ) |
ข้อความเนื้อหาของการแจ้งเตือน |
android_channel_id |
สตริง (ไม่บังคับ) |
รหัสช่องของการแจ้งเตือน (ใหม่ใน Android O) แอปต้องสร้างช่องโดยใช้รหัสช่องนี้ก่อนที่จะมีการแจ้งเตือนที่มีรหัสช่องนี้ ได้รับ หากคุณไม่ได้ส่งรหัสช่องนี้ในคำขอ หรือรหัสช่องที่ระบุยังไม่ได้รับการส่ง ซึ่งแอป FCM สร้างขึ้น จะใช้รหัสช่องที่ระบุไว้ในไฟล์ Manifest ของแอป |
icon |
สตริง (ไม่บังคับ) |
ไอคอนการแจ้งเตือน
ตั้งค่าไอคอนการแจ้งเตือนเป็น |
sound |
สตริง (ไม่บังคับ) |
เสียงที่จะเล่นเมื่ออุปกรณ์ได้รับการแจ้งเตือน
รองรับ |
tag |
สตริง (ไม่บังคับ) |
ตัวระบุที่ใช้แทนที่การแจ้งเตือนที่มีอยู่ในการแจ้งเตือน ลิ้นชัก หากไม่ระบุ คำขอแต่ละรายการจะสร้างการแจ้งเตือนใหม่ หากระบุและการแจ้งเตือนที่มีแท็กเดียวกันอยู่แล้ว การแจ้งเตือนใหม่นี้จะแทนที่การแจ้งเตือนที่มีอยู่ใน ลิ้นชักการแจ้งเตือน |
color |
สตริง (ไม่บังคับ) |
สีไอคอนของการแจ้งเตือน ซึ่งแสดงในรูปแบบ |
click_action |
สตริง (ไม่บังคับ) |
การดำเนินการที่เชื่อมโยงกับผู้ใช้คลิกการแจ้งเตือน หากระบุไว้ กิจกรรมที่มีตัวกรอง Intent ตรงกันจะเปิดขึ้นเมื่อ ผู้ใช้คลิกการแจ้งเตือน |
body_loc_key |
สตริง (ไม่บังคับ) |
คีย์ในสตริงเนื้อหาในทรัพยากรสตริงของแอปที่จะใช้ แปลข้อความเนื้อหาเป็นการแปลเป็นภาษาปัจจุบันของผู้ใช้ โปรดดู แหล่งข้อมูลสตริงสำหรับข้อมูลเพิ่มเติม |
body_loc_args |
ไม่บังคับ อาร์เรย์ JSON เป็นสตริง |
ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบใน
โปรดดู การจัดรูปแบบและการจัดรูปแบบสำหรับข้อมูลเพิ่มเติม |
title_loc_key |
สตริง (ไม่บังคับ) |
คีย์ของสตริงชื่อในทรัพยากรสตริงของแอปที่จะใช้ แปลข้อความชื่อตามการแปลเป็นภาษาปัจจุบันของผู้ใช้ โปรดดู แหล่งข้อมูลสตริงสำหรับข้อมูลเพิ่มเติม |
title_loc_args |
ไม่บังคับ อาร์เรย์ JSON เป็นสตริง |
ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบใน
โปรดดู การจัดรูปแบบและการจัดรูปแบบสำหรับข้อมูลเพิ่มเติม |
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
title |
สตริง (ไม่บังคับ) |
ชื่อการแจ้งเตือน |
body |
สตริง (ไม่บังคับ) |
ข้อความเนื้อหาของการแจ้งเตือน |
icon |
สตริง (ไม่บังคับ) |
URL ที่ใช้สำหรับไอคอนการแจ้งเตือน |
click_action |
สตริง (ไม่บังคับ) |
การดำเนินการที่เชื่อมโยงกับผู้ใช้คลิกการแจ้งเตือน ค่า URL ทั้งหมดต้องใช้ HTTPS |
ข้อความ HTTP ดาวน์สตรีม (ข้อความธรรมดา)
ตารางต่อไปนี้แสดงไวยากรณ์สำหรับเป้าหมาย ตัวเลือก และเพย์โหลดแบบธรรมดา ข้อความ HTTP จากดาวน์สตรีม
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
เป้าหมาย | ||
registration_id |
ต้องระบุ สตริง | พารามิเตอร์นี้ระบุแอปไคลเอ็นต์ (โทเค็นการลงทะเบียน) ที่รับข้อความ อนุญาตการรับส่งข้อความ Multicast (การส่งไปยังโทเค็นการลงทะเบียนมากกว่า 1 รายการ) โดยใช้รูปแบบ HTTP JSON เท่านั้น |
ตัวเลือก | ||
collapse_key |
สตริง (ไม่บังคับ) | ดูรายละเอียดในตาราง 1 |
time_to_live |
ไม่บังคับ หมายเลข | ดูรายละเอียดในตาราง 1 |
restricted_package_name |
สตริง (ไม่บังคับ) | ดูรายละเอียดในตาราง 1 |
dry_run |
ไม่บังคับ บูลีน | ดูรายละเอียดในตาราง 1 |
เพย์โหลด | ||
data.<key> |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้ระบุคู่คีย์-ค่าสำหรับเพย์โหลดของข้อความ ไม่มีการจำกัดจำนวนพารามิเตอร์คีย์-ค่า แต่จำกัดขนาดข้อความทั้งหมดไว้ที่ 4096 ไบต์ ตัวอย่างเช่น ใน Android คีย์ไม่ควรเป็นคำที่สงวนไว้ ("from", "message_type" หรือคำใดๆ ที่ขึ้นต้นด้วย
"google" หรือ "gcm") อย่าใช้คำใดๆ ที่ระบุไว้ในตารางนี้
(เช่น |
การแปลการตอบกลับข้อความดาวน์สตรีม
เซิร์ฟเวอร์แอปควรประเมินทั้งส่วนหัวและเนื้อหาข้อความตอบกลับ เพื่อตีความข้อความตอบกลับที่ส่งจาก FCM ตารางต่อไปนี้ จะอธิบายคำตอบที่เป็นไปได้
การตอบสนอง | คำอธิบาย |
---|---|
200 | ประมวลผลข้อความเรียบร้อยแล้ว เนื้อหาการตอบกลับจะมีข้อมูลเพิ่มเติม รายละเอียดเกี่ยวกับสถานะข้อความ แต่รูปแบบของข้อความจะขึ้นอยู่กับว่า เป็น JSON หรือข้อความธรรมดา โปรดดูตาราง 5 เพื่อดูรายละเอียดเพิ่มเติม |
400 | ใช้กับคำขอ JSON เท่านั้น ระบุว่าคำขอแยกวิเคราะห์เป็น JSON ไม่ได้ หรือคำขอไม่ถูกต้อง (เช่น การส่งสตริงที่ควรมีตัวเลข) ผลลัพธ์ที่แน่นอน อธิบายสาเหตุของความล้มเหลวไว้ในคำตอบและควรแก้ไขปัญหา ก่อนที่จะสามารถลองส่งคำขออีกครั้ง |
401 | เกิดข้อผิดพลาดในการตรวจสอบสิทธิ์บัญชีผู้ส่ง |
5xx | ข้อผิดพลาดในช่วง 500-599 (เช่น 500 หรือ 503) บ่งชี้ว่ามี
ข้อผิดพลาดภายในในแบ็กเอนด์ FCM ขณะพยายามประมวลผลคำขอ หรือ
เซิร์ฟเวอร์ไม่สามารถใช้งานได้ชั่วคราว (เช่น เนื่องจากหมดเวลา) ผู้ส่ง
ต้องลองอีกครั้งในภายหลัง โดยใช้ส่วนหัว Retry-After ที่รวมอยู่ใน
คำตอบ แอปพลิเคชันเซิร์ฟเวอร์ต้องใช้ Exponential Backoff |
ตารางต่อไปนี้แสดงช่องในเนื้อหาการตอบกลับของข้อความดาวน์สตรีม (JSON)
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
multicast_id |
ต้องระบุ หมายเลข | รหัสที่ไม่ซ้ำกัน (ตัวเลข) ที่ระบุข้อความมัลติแคสต์ |
success |
ต้องระบุ หมายเลข | จำนวนข้อความที่ประมวลผลโดยไม่มีข้อผิดพลาด |
failure |
ต้องระบุ หมายเลข | จำนวนข้อความที่ประมวลผลไม่ได้ |
results |
ต้องระบุ อาร์เรย์ของออบเจ็กต์ | อาร์เรย์ของออบเจ็กต์ที่แทนสถานะของข้อความที่ประมวลผล
แสดงในรายการตามลำดับเดียวกับคำขอ (สำหรับการลงทะเบียนแต่ละครั้ง
รหัสในคำขอ ผลลัพธ์จะแสดงในดัชนีเดียวกันในการตอบกลับ)
|
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
message_id |
ไม่บังคับ หมายเลข | รหัสข้อความหัวข้อเมื่อ FCM ได้รับคำขอเรียบร้อยแล้วและ จะพยายามนำส่งไปยังอุปกรณ์ที่สมัครใช้บริการทั้งหมด |
error |
สตริง (ไม่บังคับ) | เกิดข้อผิดพลาดขณะประมวลผลข้อความ ดูค่าที่เป็นไปได้ได้ในตาราง 9 |
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
id |
ต้องระบุ สตริง | พารามิเตอร์นี้ระบุรหัสข้อความที่ไม่ซ้ำกัน FCM ที่ประมวลผลเรียบร้อยแล้ว |
registration_id |
สตริง (ไม่บังคับ) | พารามิเตอร์นี้ระบุโทเค็นการลงทะเบียนสําหรับแอปไคลเอ็นต์ที่มีข้อความ ประมวลผลและส่งไปยัง |
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
Error |
ต้องระบุ สตริง | พารามิเตอร์นี้ระบุค่าข้อผิดพลาดขณะประมวลผลข้อความสำหรับผู้รับ ดูรายละเอียดได้ในตาราง 9 |
โค้ดตอบกลับข้อผิดพลาดของข้อความดาวน์สตรีม
ตารางต่อไปนี้แสดงโค้ดตอบกลับของข้อผิดพลาดสำหรับข้อความดาวน์สตรีม
ข้อผิดพลาด | รหัส HTTP | การดำเนินการที่แนะนำ |
---|---|---|
ไม่มีโทเค็นการลงทะเบียน | 200 + ข้อผิดพลาด:MissingRegistration | ตรวจสอบว่าคำขอมีโทเค็นการลงทะเบียน (ใน
registration_id ในข้อความธรรมดา หรือในto
หรือ registration_ids ใน JSON) |
โทเค็นการลงทะเบียนไม่ถูกต้อง | 200 + ข้อผิดพลาด:รหัสการลงทะเบียนไม่ถูกต้อง | ตรวจสอบรูปแบบของโทเค็นการลงทะเบียนที่คุณส่งไปยังเซิร์ฟเวอร์ ตรวจสอบ ตรงกับโทเค็นการลงทะเบียนที่แอปไคลเอ็นต์ได้รับจากการลงทะเบียนด้วย Firebase การแจ้งเตือน อย่าตัดหรือเพิ่มอักขระอื่น |
อุปกรณ์ที่ไม่ได้ลงทะเบียน | 200 + ข้อผิดพลาด:Notregistereded | โทเค็นการลงทะเบียนที่มีอยู่อาจใช้ไม่ได้ในบางสถานการณ์ ดังนี้
|
ชื่อแพ็กเกจไม่ถูกต้อง | 200 + ข้อผิดพลาด:InvalidPackageName | ตรวจสอบว่าข้อความส่งถึงโทเค็นการลงทะเบียนที่มีชื่อแพ็กเกจ ตรงกับค่าที่ส่งในคำขอ |
ข้อผิดพลาดในการตรวจสอบสิทธิ์ | 401 | ไม่สามารถตรวจสอบสิทธิ์บัญชีผู้ส่งที่ใช้ส่งข้อความ สาเหตุที่เป็นไปได้มีดังนี้
|
ผู้ส่งไม่ตรงกัน | 200 + ข้อผิดพลาด:MismatchSenderId | โทเค็นการลงทะเบียนจะผูกกับกลุ่มผู้ส่งบางกลุ่ม เมื่อแอปของไคลเอ็นต์ลงทะเบียน สำหรับ FCM ต้องระบุผู้ส่งที่ได้รับอนุญาตให้ส่งข้อความ คุณควรใช้ข้อมูลโค้ด ของรหัสผู้ส่งเหล่านั้นเมื่อส่งข้อความไปยังแอปไคลเอ็นต์ หากเปลี่ยนไปใช้ ผู้ส่ง โทเค็นการลงทะเบียนที่มีอยู่จะไม่ทำงาน |
JSON ไม่ถูกต้อง | 400 | ตรวจสอบว่าข้อความ JSON อยู่ในรูปแบบที่ถูกต้องและมีช่องที่ถูกต้อง (เช่น การส่งประเภทข้อมูลที่ถูกต้อง) |
พารามิเตอร์ไม่ถูกต้อง | 400 + ข้อผิดพลาด:invalidParameters | ตรวจสอบว่าพารามิเตอร์ที่ระบุมีชื่อและประเภทที่ถูกต้อง |
ข้อความมีขนาดใหญ่เกินไป | 200 + ข้อผิดพลาด:MessageTooBig | ตรวจสอบว่าขนาดรวมของข้อมูลเพย์โหลดที่รวมอยู่ในข้อความ ไม่เกินขีดจำกัด FCM นั่นคือ 4096 ไบต์สำหรับข้อความส่วนใหญ่ หรือ 2048 ไบต์ในกรณีที่ ของข้อความไปยังหัวข้อ ซึ่งรวมทั้ง คีย์และค่า |
คีย์ข้อมูลไม่ถูกต้อง | 200 + ข้อผิดพลาด:
คีย์ข้อมูลไม่ถูกต้อง |
ตรวจสอบว่าข้อมูลเพย์โหลดไม่มีคีย์ (เช่น from ,
หรือ gcm หรือค่าใดก็ได้
นำหน้าด้วย google ) ที่ใช้ภายในโดย FCM โปรดทราบว่าคำบางคำ (เช่น collapse_key )
ใช้โดย FCM เช่นกัน แต่ได้รับอนุญาตในเพย์โหลด ซึ่ง
ในกรณีที่ค่าเพย์โหลดจะถูกลบล้างด้วยค่า FCM |
Time to Live ไม่ถูกต้อง | 200 + ข้อผิดพลาด:invalidTtl | ตรวจสอบว่าค่าที่ใช้ใน time_to_live เป็นจำนวนเต็มที่แสดง
ระยะเวลาเป็นวินาทีระหว่าง 0 ถึง 2,419,200 (4 สัปดาห์) |
ระยะหมดเวลา | 5xx หรือ 200 + ข้อผิดพลาด:ไม่พร้อมใช้งาน | เซิร์ฟเวอร์ประมวลผลคำขอได้ไม่ทันเวลา ลองส่งคำขอเดิมอีกครั้ง แต่คุณต้องทำดังนี้
ผู้ส่งที่ทำให้เกิดปัญหาเสี่ยงต่อการถูกขึ้นบัญชีดำ |
ข้อผิดพลาดภายในเซิร์ฟเวอร์ | 500 หรือ 200 + ข้อผิดพลาด:InternalServerError | เซิร์ฟเวอร์พบข้อผิดพลาดขณะพยายามประมวลผลคำขอ คุณลองอีกครั้งได้ คำขอเดียวกันที่เป็นไปตามข้อกำหนดที่ระบุไว้ใน "ระยะหมดเวลา" (ดูแถวด้านบน) หากข้อผิดพลาด ยังคงอยู่ โปรดติดต่อทีมสนับสนุน Firebase |
เกินอัตราข้อความในอุปกรณ์ | 200 + ข้อผิดพลาด:
อัตราข้อความของอุปกรณ์ เกินขีดจำกัด |
อัตราการส่งข้อความไปยังอุปกรณ์เครื่องใดเครื่องหนึ่งสูงเกินไป หากแอป Apple ส่งข้อความในอัตราที่เกินขีดจำกัด APN ข้อความนี้อาจได้รับข้อความแสดงข้อผิดพลาดนี้ ลด จำนวนข้อความที่ส่งไปยังอุปกรณ์นี้ ใช้ exponential Backoff เพื่อลองส่งอีกครั้ง |
เกินอัตราข้อความของหัวข้อ | 200 + ข้อผิดพลาด:
อัตราข้อความหัวข้อ เกินขีดจำกัด |
อัตราการส่งข้อความไปยังผู้ติดตามในหัวข้อใดหัวข้อหนึ่งสูงเกินไป ลด จำนวนข้อความที่ส่งสำหรับหัวข้อนี้และ ใช้ exponential Backoff เพื่อลองส่งอีกครั้ง |
ข้อมูลเข้าสู่ระบบ APN ไม่ถูกต้อง | 200 + ข้อผิดพลาด:
ไม่ถูกต้องApnsCredential |
ส่งข้อความที่กำหนดเป้าหมายไปยังอุปกรณ์ Apple ไม่ได้เนื่องจาก APN ที่จำเป็น คีย์การตรวจสอบสิทธิ์ไม่ได้อัปโหลดหรือหมดอายุแล้ว ตรวจสอบความถูกต้องของการพัฒนา และข้อมูลรับรองการผลิต |
การจัดการกลุ่มอุปกรณ์
ตารางต่อไปนี้แสดงคีย์สำหรับการสร้างกลุ่มอุปกรณ์ ตลอดจนการเพิ่มและนำสมาชิกออก สำหรับข้อมูลเพิ่มเติม โปรดดู สำหรับแพลตฟอร์มของคุณ iOS+ หรือ Android
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
operation |
ต้องระบุ สตริง | การดำเนินการที่จะเรียกใช้ ค่าที่ถูกต้องคือ create
add และ remove |
notification_key_name |
ต้องระบุ สตริง | ชื่อที่ผู้ใช้กำหนดของกลุ่มอุปกรณ์ที่จะสร้างหรือแก้ไข |
notification_key |
ต้องระบุ (ยกเว้นการดำเนินการ create , สตริง |
ตัวระบุที่ไม่ซ้ำกันของกลุ่มอุปกรณ์ ค่านี้
แสดงผลในการตอบกลับสำหรับ create ที่สำเร็จ
และเป็น
ซึ่งจำเป็นสำหรับการดำเนินการครั้งต่อๆ ไปทั้งหมดในกลุ่มอุปกรณ์ |
registration_ids |
ต้องระบุ อาร์เรย์ของสตริง | โทเค็นของอุปกรณ์ที่จะเพิ่มหรือนำออก หากคุณนำรายการที่มีอยู่ออกทั้งหมด โทเค็นการลงทะเบียนจากกลุ่มอุปกรณ์ FCM จะลบกลุ่มอุปกรณ์ |