REST Resource: projects.messages

แหล่งข้อมูล: ข้อความ

ข้อความที่จะส่งโดยบริการ Firebase Cloud Messaging

การแสดง JSON
{
  "name": string,
  "data": {
    string: string,
    ...
  },
  "notification": {
    object (Notification)
  },
  "android": {
    object (AndroidConfig)
  },
  "webpush": {
    object (WebpushConfig)
  },
  "apns": {
    object (ApnsConfig)
  },
  "fcm_options": {
    object (FcmOptions)
  },

  // Union field target can be only one of the following:
  "token": string,
  "topic": string,
  "condition": string
  // End of list of possible types for union field target.
}
ช่อง
name

string

เอาต์พุตเท่านั้น ตัวระบุของข้อความที่ส่งในรูปแบบ projects/*/messages/{message_id}

data

map (key: string, value: string)

อินพุตเท่านั้น เพย์โหลดคีย์/ค่าที่กำหนดเอง ซึ่งต้องเข้ารหัส UTF-8 คีย์ไม่ควรเป็นคำที่สงวนไว้ ("from", "message_type" หรือคำใดๆ ที่ขึ้นต้นด้วย "google" หรือ "gcm") เมื่อส่งเพย์โหลดที่มีเฉพาะฟิลด์ข้อมูลไปยังอุปกรณ์ iOS ระบบจะอนุญาตให้ใช้เฉพาะลำดับความสำคัญปกติ ("apns-priority": "5") ใน ApnsConfig

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

notification

object (Notification)

อินพุตเท่านั้น เทมเพลตการแจ้งเตือนพื้นฐานสำหรับใช้ในทุกแพลตฟอร์ม

android

object (AndroidConfig)

อินพุตเท่านั้น ตัวเลือกเฉพาะสำหรับ Android สำหรับข้อความที่ส่งผ่านเซิร์ฟเวอร์การเชื่อมต่อ FCM

webpush

object (WebpushConfig)

อินพุตเท่านั้น ตัวเลือกโปรโตคอล Webpush

apns

object (ApnsConfig)

อินพุตเท่านั้น ตัวเลือกเฉพาะของบริการข้อความ Push ของ Apple

fcm_options

object (FcmOptions)

อินพุตเท่านั้น เทมเพลตสำหรับตัวเลือกฟีเจอร์ FCM SDK สำหรับใช้ในทุกแพลตฟอร์ม

ฟิลด์สหภาพ target ต้องระบุ อินพุตเท่านั้น กำหนดเป้าหมายเพื่อส่งข้อความ target ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
token

string

โทเค็นการลงทะเบียนที่จะส่งข้อความถึง

topic

string

ชื่อหัวข้อที่จะส่งข้อความถึง เช่น "สภาพอากาศ" หมายเหตุ: ไม่ควรระบุ "/topics/" นำหน้า

condition

string

เงื่อนไขในการส่งข้อความถึง เช่น "foo" ในหัวข้อ && 'bar' ใน หัวข้อ"

การแจ้งเตือน

เทมเพลตการแจ้งเตือนพื้นฐานสำหรับใช้ในทุกแพลตฟอร์ม

การแสดง JSON
{
  "title": string,
  "body": string,
  "image": string
}
ช่อง
title

string

ชื่อของการแจ้งเตือน

body

string

ข้อความเนื้อหาของการแจ้งเตือน

image

string

มี URL ของรูปภาพที่จะดาวน์โหลดลงในอุปกรณ์และแสดงในการแจ้งเตือน JPEG, PNG, BMP มีการรองรับอย่างเต็มรูปแบบในแพลตฟอร์มต่างๆ GIF แบบเคลื่อนไหวและวิดีโอจะใช้งานได้บน iOS เท่านั้น WebP และ HEIF มีการสนับสนุนหลายระดับในแพลตฟอร์มและแพลตฟอร์มแต่ละเวอร์ชัน Android จำกัดขนาดรูปภาพไว้ที่ 1 MB การใช้โควต้าและผลกระทบ/ค่าใช้จ่ายสำหรับการโฮสต์รูปภาพในพื้นที่เก็บข้อมูลของ Firebase: https://firebase.google.com/pricing

การกำหนดค่า Android

ตัวเลือกเฉพาะสำหรับ Android สำหรับข้อความที่ส่งผ่านเซิร์ฟเวอร์การเชื่อมต่อ FCM

การแสดง JSON
{
  "collapse_key": string,
  "priority": enum (AndroidMessagePriority),
  "ttl": string,
  "restricted_package_name": string,
  "data": {
    string: string,
    ...
  },
  "notification": {
    object (AndroidNotification)
  },
  "fcm_options": {
    object (AndroidFcmOptions)
  },
  "direct_boot_ok": boolean
}
ช่อง
collapse_key

string

ตัวระบุของกลุ่มข้อความที่สามารถยุบได้ เพื่อให้ระบบส่งเฉพาะข้อความสุดท้ายเมื่อทำให้การนำส่งกลับมาทำงานอีกครั้ง อนุญาตให้ใช้คีย์ยุบที่แตกต่างกันได้สูงสุด 4 คีย์ในช่วงเวลาหนึ่งๆ

priority

enum (AndroidMessagePriority)

ลำดับความสำคัญของข้อความ อาจใช้ค่า "ปกติ" และ "สูง" ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าลำดับความสำคัญของข้อความ

ttl

string (Duration format)

ระยะเวลา (เป็นวินาที) ที่ควรเก็บข้อความไว้ในพื้นที่เก็บข้อมูล FCM หากอุปกรณ์ออฟไลน์ Time to Live สูงสุดที่รองรับคือ 4 สัปดาห์ และค่าเริ่มต้นจะเป็น 4 สัปดาห์ หากไม่ได้ตั้งค่าไว้ หากต้องการส่งข้อความทันที ให้กำหนดค่าเป็น 0 ในรูปแบบ JSON ประเภทระยะเวลาจะเข้ารหัสเป็นสตริงแทนที่จะเป็นออบเจ็กต์ โดยสตริงจะลงท้ายด้วย "s" (ระบุวินาที) และนำหน้าด้วยจำนวนวินาที โดยนาโนวินาทีแสดงเป็นเศษส่วน ตัวอย่างเช่น 3 วินาทีที่มี 0 นาโนวินาทีควรเข้ารหัสในรูปแบบ JSON เป็น "3s" ส่วน 3 วินาทีและ 1 นาโนวินาทีควรอยู่ในรูปแบบ JSON เป็น "3.000000001s" ระบบจะปัดเศษ ttl ลงเป็นค่าวินาทีที่ใกล้ที่สุด

ระยะเวลาเป็นวินาทีที่มีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" เช่น "3.5s"

restricted_package_name

string

ชื่อแพ็กเกจของแอปพลิเคชันที่โทเค็นการลงทะเบียนต้องตรงกันจึงจะได้รับข้อความ

data

map (key: string, value: string)

เพย์โหลดคีย์/ค่าที่กำหนดเอง หากมี จะลบล้าง google.firebase.fcm.v1.Message.data

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

notification

object (AndroidNotification)

การแจ้งเตือนให้ส่งไปยังอุปกรณ์ Android

fcm_options

object (AndroidFcmOptions)

ตัวเลือกสำหรับฟีเจอร์ที่มาจาก FCM SDK สำหรับ Android

direct_boot_ok

boolean

หากตั้งค่าเป็น "จริง" ระบบจะอนุญาตให้ส่งข้อความไปยังแอปขณะที่อุปกรณ์อยู่ในโหมดการเปิดเครื่องโดยตรง โปรดดูโหมดการเปิดเครื่อง Direct การรองรับ

ลำดับความสำคัญของข้อความ Android

ลำดับความสำคัญของข้อความที่จะส่งไปยังอุปกรณ์ Android โปรดทราบว่าลำดับความสำคัญนี้เป็นแนวคิด FCM ที่ควบคุมเวลาส่งข้อความ ดูคำแนะนำเกี่ยวกับ FCM นอกจากนี้ คุณยังกำหนดลำดับความสำคัญในการแสดงการแจ้งเตือนในอุปกรณ์ Android เป้าหมายได้โดยใช้ AndroidNotification.NotificationPriority

Enum
NORMAL ลำดับความสำคัญเริ่มต้นสำหรับข้อความข้อมูล ข้อความที่มีลำดับความสำคัญปกติจะไม่เปิดการเชื่อมต่อเครือข่ายในอุปกรณ์ที่อยู่ในโหมดนอนหลับ และการส่งอาจล่าช้าเพื่อประหยัดแบตเตอรี่ สำหรับข้อความที่มีเวลาน้อย เช่น การแจ้งเตือนอีเมลใหม่หรือข้อมูลอื่นๆ ที่ต้องการซิงค์ ให้เลือกลำดับความสำคัญในการจัดส่งปกติ
HIGH ลำดับความสำคัญเริ่มต้นสำหรับข้อความการแจ้งเตือน FCM จะพยายามส่งข้อความที่มีลำดับความสำคัญสูงโดยทันที เพื่อให้บริการ FCM ปลุกระบบอุปกรณ์ที่นอนหลับเมื่อเป็นไปได้ และเปิดการเชื่อมต่อเครือข่ายกับเซิร์ฟเวอร์แอปของคุณ ตัวอย่างเช่น โดยทั่วไปแอปที่มีการรับส่งข้อความโต้ตอบแบบทันที แชท หรือการโทรด้วยเสียงต้องเปิดการเชื่อมต่อเครือข่ายและตรวจสอบว่า FCM ส่งข้อความไปยังอุปกรณ์โดยไม่มีความล่าช้า ตั้งลำดับความสำคัญสูงหากข้อความนั้นสำคัญต่อเวลาและต้องมีการโต้ตอบทันทีของผู้ใช้ แต่โปรดระวังว่าการตั้งค่าข้อความของคุณมีลำดับความสำคัญสูงจะเป็นการทำให้แบตเตอรี่หมดเร็วเมื่อเทียบกับข้อความที่มีความสำคัญทั่วไป

การแจ้งเตือน Android

การแจ้งเตือนให้ส่งไปยังอุปกรณ์ Android

การแสดง JSON
{
  "title": string,
  "body": string,
  "icon": string,
  "color": string,
  "sound": string,
  "tag": string,
  "click_action": string,
  "body_loc_key": string,
  "body_loc_args": [
    string
  ],
  "title_loc_key": string,
  "title_loc_args": [
    string
  ],
  "channel_id": string,
  "ticker": string,
  "sticky": boolean,
  "event_time": string,
  "local_only": boolean,
  "notification_priority": enum (NotificationPriority),
  "default_sound": boolean,
  "default_vibrate_timings": boolean,
  "default_light_settings": boolean,
  "vibrate_timings": [
    string
  ],
  "visibility": enum (Visibility),
  "notification_count": integer,
  "light_settings": {
    object (LightSettings)
  },
  "image": string,
  "proxy": enum (Proxy)
}
ช่อง
title

string

ชื่อของการแจ้งเตือน หากมี จะลบล้าง google.firebase.fcm.v1.Notification.title

body

string

ข้อความเนื้อหาของการแจ้งเตือน หากมี จะลบล้าง google.firebase.fcm.v1.Notification.body

icon

string

ไอคอนของการแจ้งเตือน ตั้งค่าไอคอนการแจ้งเตือนเป็น myicon สำหรับ myicon ทรัพยากรแบบถอนได้ หากคุณไม่ส่งคีย์นี้ในคำขอ FCM จะแสดงไอคอน Launcher ที่ระบุไว้ในไฟล์ Manifest ของแอป

color

string

สีไอคอนของการแจ้งเตือน แสดงในรูปแบบ #rrggbb

sound

string

เสียงที่จะเล่นเมื่ออุปกรณ์ได้รับการแจ้งเตือน รองรับ "ค่าเริ่มต้น" หรือชื่อไฟล์ของทรัพยากรเสียงที่รวมอยู่ในแอป ไฟล์เสียงต้องอยู่ใน /res/raw/

tag

string

ตัวระบุที่ใช้แทนที่การแจ้งเตือนที่มีอยู่ในลิ้นชักการแจ้งเตือน หากไม่ได้ระบุไว้ คำขอแต่ละรายการจะสร้างการแจ้งเตือนใหม่ หากระบุไว้และการแจ้งเตือนที่มีแท็กเดียวกันกำลังแสดงอยู่แล้ว การแจ้งเตือนใหม่จะแทนที่การแจ้งเตือนที่มีอยู่ในลิ้นชักการแจ้งเตือน

click_action

string

การดําเนินการที่เชื่อมโยงกับผู้ใช้คลิกการแจ้งเตือน หากระบุไว้ ระบบจะเปิดกิจกรรมที่มีตัวกรอง Intent ที่ตรงกันเมื่อผู้ใช้คลิกการแจ้งเตือน

body_loc_key

string

คีย์ไปยังสตริงเนื้อหาในทรัพยากรสตริงของแอปเพื่อใช้ในการปรับข้อความเนื้อหาให้เข้ากับท้องถิ่นของผู้ใช้ในปัจจุบัน ดูข้อมูลเพิ่มเติมในทรัพยากรสตริง

body_loc_args[]

string

ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบในbody_loc_key ที่จะใช้ในการแปลภาษาเนื้อหาตามภาษาปัจจุบันของผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่การจัดรูปแบบและการจัดรูปแบบ

title_loc_key

string

คีย์สำหรับสตริงชื่อในทรัพยากรสตริงของแอปเพื่อใช้ในการแปลข้อความชื่อตามการแปลปัจจุบันของผู้ใช้ ดูข้อมูลเพิ่มเติมในทรัพยากรสตริง

title_loc_args[]

string

ค่าสตริงตัวแปรที่จะใช้แทนตัวระบุรูปแบบใน title_loc_key เพื่อใช้ในการแปลข้อความชื่อตามการแปลในปัจจุบันของผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่การจัดรูปแบบและการจัดรูปแบบ

channel_id

string

รหัสช่องของการแจ้งเตือน (ใหม่ใน Android O) แอปต้องสร้างช่องด้วยรหัสช่องนี้ก่อนจึงจะได้รับการแจ้งเตือนที่มีรหัสช่องนี้ หากคุณไม่ได้ส่งรหัสแชแนลนี้ในคำขอ หรือหากแอปยังไม่ได้สร้างรหัสแชแนลที่ระบุ FCM จะใช้รหัสแชแนลที่ระบุในไฟล์ Manifest ของแอป

ticker

string

ตั้งค่าข้อความ "ทิกเกอร์" ซึ่งจะส่งไปยังบริการการช่วยเหลือพิเศษ ก่อนระดับ API 21 (Lollipop) ให้ตั้งค่าข้อความที่แสดงในแถบสถานะเมื่อมีการแจ้งเตือนครั้งแรก

sticky

boolean

เมื่อตั้งค่าเป็น "เท็จ" หรือไม่ได้ตั้งค่า ระบบจะปิดการแจ้งเตือนโดยอัตโนมัติเมื่อผู้ใช้คลิกการแจ้งเตือนในแผง เมื่อตั้งค่าเป็น "จริง" การแจ้งเตือนจะยังคงอยู่แม้ว่าผู้ใช้จะคลิกก็ตาม

event_time

string (Timestamp format)

ตั้งเวลาที่กิจกรรมในการแจ้งเตือนเกิดขึ้น การแจ้งเตือนในแผงจะจัดเรียงตามเวลานี้ ช่วงเวลาจะแสดงโดยใช้ ctrbuf.Timestamp

การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขที่เป็นเศษส่วนได้สูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

local_only

boolean

ตั้งค่าว่าการแจ้งเตือนนี้จะเกี่ยวข้องกับอุปกรณ์ปัจจุบันเท่านั้นหรือไม่ การแจ้งเตือนบางอย่างจะเชื่อมโยงกับอุปกรณ์อื่นๆ เพื่อการแสดงผลระยะไกลได้ เช่น นาฬิกา Wear OS คุณสามารถตั้งค่าคำแนะนำนี้เพื่อแนะนำให้ยกเลิกการเชื่อมโยงการแจ้งเตือนนี้ ดูคู่มือ Wear OS

notification_priority

enum (NotificationPriority)

กำหนดลำดับความสำคัญที่เกี่ยวข้องสำหรับการแจ้งเตือนนี้ ลำดับความสำคัญคือตัวบ่งชี้ว่าผู้ใช้ควรให้ความสนใจกับการแจ้งเตือนนี้มากน้อยเพียงใด ระบบอาจซ่อนการแจ้งเตือนที่มีลำดับความสำคัญต่ำจากผู้ใช้ในบางกรณี แต่ผู้ใช้อาจถูกขัดจังหวะเมื่อมีการแจ้งเตือนที่มีลำดับความสำคัญสูงกว่า ผลของการตั้งค่าลำดับความสำคัญเดียวกันอาจแตกต่างกันเล็กน้อยในแพลตฟอร์มต่างๆ โปรดทราบว่าลำดับความสำคัญนี้แตกต่างจาก AndroidMessagePriority ลำดับความสำคัญนี้จะได้รับการประมวลผลโดยไคลเอ็นต์หลังจากส่งข้อความแล้ว ในขณะที่ AndroidMessagePriority เป็นแนวคิด FCM ที่ควบคุมการส่งข้อความ

default_sound

boolean

หากตั้งค่าเป็น "จริง" ให้ใช้เสียงเริ่มต้นของเฟรมเวิร์ก Android สำหรับการแจ้งเตือน ค่าเริ่มต้นระบุไว้ใน config.xml

default_vibrate_timings

boolean

หากตั้งค่าเป็น "จริง" ให้ใช้รูปแบบการสั่นเริ่มต้นของเฟรมเวิร์ก Android สำหรับการแจ้งเตือน ค่าเริ่มต้นระบุไว้ใน config.xml หากตั้งค่า default_vibrate_timings เป็น "จริง" และตั้งค่า vibrate_timings ด้วย ระบบจะใช้ค่าเริ่มต้นแทน vibrate_timings ที่ผู้ใช้ระบุ

default_light_settings

boolean

หากตั้งค่าเป็น "จริง" ให้ใช้การตั้งค่าไฟ LED เริ่มต้นของเฟรมเวิร์ก Android สำหรับการแจ้งเตือน ค่าเริ่มต้นระบุไว้ใน config.xml หากตั้งค่า default_light_settings เป็น "จริง" และตั้งค่า light_settings ด้วย ระบบจะใช้ light_settings ที่ผู้ใช้ระบุแทนค่าเริ่มต้น

vibrate_timings[]

string (Duration format)

ตั้งค่ารูปแบบการสั่นที่จะใช้ ส่งต่อช่วง masterbuf.Duration เพื่อเปิดหรือปิดการสั่น ค่าแรกบ่งบอกว่า Duration ให้รอก่อนที่จะเปิดการสั่น ค่าถัดไปจะระบุ Duration เพื่อให้เครื่องสั่นเปิดไว้ ค่าต่อๆ ไปจะสลับระหว่าง Duration เพื่อปิดการสั่นและเปิดการสั่น หากตั้งค่า vibrate_timings และตั้งค่า default_vibrate_timings เป็น true ระบบจะใช้ค่าเริ่มต้นแทน vibrate_timings ที่ผู้ใช้ระบุ

ระยะเวลาเป็นวินาทีที่มีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" เช่น "3.5s"

visibility

enum (Visibility)

ตั้งค่า Notification.visibility ของการแจ้งเตือน

notification_count

integer

กำหนดจำนวนรายการที่การแจ้งเตือนนี้แสดง อาจแสดงเป็นจำนวนป้ายสำหรับ Launcher ที่รองรับการติดป้าย โปรดดูป้ายการแจ้งเตือน ตัวอย่างเช่น วิธีนี้อาจเป็นประโยชน์หากคุณใช้การแจ้งเตือนเพียงรายการเดียวเพื่อแสดงข้อความใหม่หลายข้อความ แต่คุณต้องการให้จำนวนที่แสดงที่นี่แสดงจำนวนข้อความใหม่ทั้งหมด หากไม่มีหรือไม่ได้ระบุ ระบบที่รองรับการติดป้ายจะใช้ค่าเริ่มต้น ซึ่งจะเพิ่มตัวเลขที่แสดงบนเมนูแบบกดค้างทุกครั้งที่มีการแจ้งเตือนใหม่เข้ามา

light_settings

object (LightSettings)

การตั้งค่าเพื่อควบคุมอัตราการกะพริบและสีไฟ LED ของการแจ้งเตือนหากอุปกรณ์มีไฟ LED ระบบปฏิบัติการจะควบคุมเวลาในการกะพริบทั้งหมด

image

string

มี URL ของรูปภาพที่จะแสดงในการแจ้งเตือน หากมี จะลบล้าง google.firebase.fcm.v1.Notification.image

proxy

enum (Proxy)

การตั้งค่าเพื่อควบคุมเวลาที่การแจ้งเตือนอาจใช้พร็อกซี

ลำดับความสำคัญของการแจ้งเตือน

ระดับความสำคัญของการแจ้งเตือน

Enum
PRIORITY_UNSPECIFIED หากไม่ได้ระบุลำดับความสำคัญ ระบบจะตั้งค่าลำดับความสำคัญของการแจ้งเตือนเป็น PRIORITY_DEFAULT
PRIORITY_MIN ลำดับความสำคัญของการแจ้งเตือนต่ำสุด การแจ้งเตือนที่มี PRIORITY_MIN นี้อาจไม่แสดงให้ผู้ใช้เห็น ยกเว้นในกรณีพิเศษ เช่น บันทึกการแจ้งเตือนโดยละเอียด
PRIORITY_LOW ลำดับความสำคัญของการแจ้งเตือนต่ำกว่า UI อาจเลือกแสดงการแจ้งเตือนที่เล็กลงหรือปรากฏในตำแหน่งอื่นในรายการเมื่อเทียบกับการแจ้งเตือนด้วย PRIORITY_DEFAULT
PRIORITY_DEFAULT ลำดับความสำคัญของการแจ้งเตือนเริ่มต้น หากแอปพลิเคชันไม่ได้จัดลำดับความสำคัญของการแจ้งเตือนของตัวเอง ให้ใช้ค่านี้สำหรับการแจ้งเตือนทั้งหมด
PRIORITY_HIGH การแจ้งเตือนที่มีลำดับความสำคัญสูงกว่า ใช้สำหรับการแจ้งเตือนที่สำคัญมากขึ้น UI อาจเลือกแสดงการแจ้งเตือนเหล่านี้ขนาดใหญ่ขึ้น หรืออยู่ในตำแหน่งอื่นในรายการการแจ้งเตือน เมื่อเทียบกับการแจ้งเตือนที่มี PRIORITY_DEFAULT
PRIORITY_MAX ลำดับความสำคัญของการแจ้งเตือนสูงสุด ใช้ตัวเลือกนี้สำหรับรายการที่สำคัญที่สุดของแอปพลิเคชันที่กำหนดให้ผู้ใช้ต้องพิจารณาหรือป้อนข้อมูล

การมองเห็น

ระดับการมองเห็นต่างๆ ของการแจ้งเตือน

Enum
VISIBILITY_UNSPECIFIED หากไม่ระบุ ระบบจะใช้ค่าเริ่มต้นเป็น Visibility.PRIVATE
PRIVATE แสดงการแจ้งเตือนนี้บนหน้าจอล็อกทั้งหมด แต่ปกปิดข้อมูลที่ละเอียดอ่อนหรือข้อมูลส่วนตัวบนหน้าจอล็อกที่ปลอดภัย
PUBLIC แสดงการแจ้งเตือนนี้ทั้งหมดบนหน้าจอล็อกทั้งหมด
SECRET อย่าเปิดเผยส่วนใดๆ ของการแจ้งเตือนนี้ในหน้าจอล็อกที่ปลอดภัย

การตั้งค่าแสง

การตั้งค่าเพื่อควบคุมไฟ LED การแจ้งเตือน

การแสดง JSON
{
  "color": {
    object (Color)
  },
  "light_on_duration": string,
  "light_off_duration": string
}
ช่อง
color

object (Color)

ต้องระบุ ตั้งค่า color ของไฟ LED โดยใช้ google.type.Color

light_on_duration

string (Duration format)

ต้องระบุ กำหนดอัตราการกะพริบของไฟ LED พร้อมกับ light_off_duration ความละเอียดที่กำหนดโดย Proto.Duration

ระยะเวลาเป็นวินาทีที่มีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" เช่น "3.5s"

light_off_duration

string (Duration format)

ต้องระบุ กำหนดอัตราการกะพริบของไฟ LED พร้อมกับ light_on_duration ความละเอียดที่กำหนดโดย Proto.Duration

ระยะเวลาเป็นวินาทีที่มีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "s" เช่น "3.5s"

สี

แสดงสีในพื้นที่สี RGBA การนำเสนอนี้ออกแบบมาเพื่อความเรียบง่ายในการแปลงค่าเป็นและเปลี่ยนจากการแสดงสีในภาษาต่างๆ มากกว่าความกะทัดรัด ตัวอย่างเช่น สามารถระบุช่องของการนำเสนอนี้ให้กับตัวสร้างของ java.awt.Color ใน Java ได้เล็กน้อย และยังระบุให้กับเมธอด +colorWithRed:green:blue:alpha ของ UIColor ใน iOS ได้เล็กน้อย และสามารถจัดรูปแบบเป็นสตริง CSS rgba() ใน JavaScript ได้โดยง่าย

หน้าข้อมูลอ้างอิงนี้ไม่มีข้อมูลเกี่ยวกับพื้นที่สีสัมบูรณ์ที่ควรใช้ในการตีความค่า RGB เช่น sRGB, Adobe RGB, DCI-P3 และ BT.2020 โดยค่าเริ่มต้น แอปพลิเคชันควรใช้พื้นที่สี sRGB

เมื่อจำเป็นต้องตัดสินใจเรื่องความเท่าเทียมของสี การติดตั้งใช้งานจะถือว่า 2 สีเท่ากันหากค่าสีแดง เขียว น้ำเงิน และอัลฟ่าทั้งหมดต่างกันไม่เกิน 1e-5 สี เว้นแต่จะระบุไว้เป็นอย่างอื่น

ตัวอย่าง (Java):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

ตัวอย่าง (iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

ตัวอย่าง (JavaScript):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
การแสดง JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
ช่อง
red

number

จํานวนสีแดงในสีเป็นค่าในช่วง [0, 1]

green

number

ปริมาณสีเขียวในสีเป็นค่าในช่วง [0, 1]

blue

number

ปริมาณสีน้ำเงินในสีเป็นค่าในช่วง [0, 1]

alpha

number

ส่วนของสีนี้ที่ควรนำไปใช้กับพิกเซล นั่นคือ สีพิกเซลสุดท้ายจะกำหนดด้วยสมการต่อไปนี้

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

หมายความว่าค่า 1.0 จะสอดคล้องกับสีทึบ ขณะที่ค่า 0.0 คือสีที่โปร่งใสโดยสมบูรณ์ วิธีนี้ใช้ข้อความ Wrapper แทนที่จะเป็นสเกลาร์ลอยตัวแบบง่ายเพื่อให้แยกความแตกต่างระหว่างค่าเริ่มต้นกับค่าที่ไม่ได้ตั้งค่าได้ หากไม่ระบุ วัตถุสีนี้จะแสดงเป็นสีทึบ (เสมือนว่าค่าอัลฟ่าได้รับการระบุอย่างชัดเจนว่าเป็น 1.0)

พร็อกซี

การตั้งค่าเพื่อควบคุมเวลาที่การแจ้งเตือนอาจใช้พร็อกซี

Enum
PROXY_UNSPECIFIED หากไม่ระบุ ระบบจะใช้ค่าเริ่มต้นเป็น Proxy.IF_PRIORITY_LOWERED
ALLOW ลองพร็อกซีการแจ้งเตือนนี้
DENY ไม่ใช้พร็อกซีการแจ้งเตือนนี้
IF_PRIORITY_LOWERED ลองพร็อกซีการแจ้งเตือนนี้เฉพาะเมื่อลดระดับAndroidMessagePriorityจาก HIGH เป็น NORMAL ในอุปกรณ์เท่านั้น

ตัวเลือก AndroidFcm

ตัวเลือกสำหรับฟีเจอร์ที่มาจาก FCM SDK สำหรับ Android

การแสดง JSON
{
  "analytics_label": string
}
ช่อง
analytics_label

string

ป้ายกำกับที่เชื่อมโยงกับข้อมูลการวิเคราะห์ของข้อความ

WebpushConfig

ตัวเลือกโปรโตคอล Webpush

การแสดง JSON
{
  "headers": {
    string: string,
    ...
  },
  "data": {
    string: string,
    ...
  },
  "notification": {
    object
  },
  "fcm_options": {
    object (WebpushFcmOptions)
  }
}
ช่อง
headers

map (key: string, value: string)

ส่วนหัว HTTP ที่กำหนดไว้ในโปรโตคอล Webpush โปรดดูโปรโตคอล Webpush สำหรับส่วนหัวที่รองรับ เช่น "TTL": "15"

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

data

map (key: string, value: string)

เพย์โหลดคีย์/ค่าที่กำหนดเอง หากมี จะลบล้าง google.firebase.fcm.v1.Message.data

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

notification

object (Struct format)

ตัวเลือกการแจ้งเตือนบนเว็บเป็นออบเจ็กต์ JSON รองรับพร็อพเพอร์ตี้อินสแตนซ์การแจ้งเตือนตามที่ระบุไว้ใน Web Notification API หากมี ช่อง "ชื่อ" และ "เนื้อหา" จะลบล้าง google.firebase.fcm.v1.Notification.title และ google.firebase.fcm.v1.Notification.body

fcm_options

object (WebpushFcmOptions)

ตัวเลือกสำหรับฟีเจอร์ที่ให้บริการโดย FCM SDK สำหรับเว็บ

ตัวเลือก WebpushFcm

ตัวเลือกสำหรับฟีเจอร์ที่ให้บริการโดย FCM SDK สำหรับเว็บ

การแสดง JSON
{
  "link": string,
  "analytics_label": string
}
ช่อง
analytics_label

string

ป้ายกำกับที่เชื่อมโยงกับข้อมูลการวิเคราะห์ของข้อความ

ApnsConfig

ตัวเลือกเฉพาะของบริการข้อความ Push ของ Apple

การแสดง JSON
{
  "headers": {
    string: string,
    ...
  },
  "payload": {
    object
  },
  "fcm_options": {
    object (ApnsFcmOptions)
  }
}
ช่อง
headers

map (key: string, value: string)

ส่วนหัวของคำขอ HTTP ที่กำหนดไว้ในบริการข้อความ Push ของ Apple โปรดดูส่วนหัวที่รองรับในส่วนหัวของคำขอ AAPN เช่น apns-expiration และ apns-priority

แบ็กเอนด์ตั้งค่าเริ่มต้นสำหรับ apns-expiration เป็น 30 วัน และค่าเริ่มต้นสำหรับ apns-priority เป็น 10 หากไม่ได้ตั้งค่าไว้อย่างชัดแจ้ง

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

payload

object (Struct format)

เพย์โหลด APN เป็นออบเจ็กต์ JSON ซึ่งรวมถึงพจนานุกรม aps และเพย์โหลดที่กำหนดเอง ดูการอ้างอิงคีย์เพย์โหลด หากมี นโยบายจะลบล้าง google.firebase.fcm.v1.Notification.title และ google.firebase.fcm.v1.Notification.body

fcm_options

object (ApnsFcmOptions)

ตัวเลือกสำหรับฟีเจอร์จาก FCM SDK สำหรับ iOS

ตัวเลือก ApnsFcm

ตัวเลือกสำหรับฟีเจอร์จาก FCM SDK สำหรับ iOS

การแสดง JSON
{
  "analytics_label": string,
  "image": string
}
ช่อง
analytics_label

string

ป้ายกำกับที่เชื่อมโยงกับข้อมูลการวิเคราะห์ของข้อความ

image

string

มี URL ของรูปภาพที่จะแสดงในการแจ้งเตือน หากมี จะลบล้าง google.firebase.fcm.v1.Notification.image

ตัวเลือก Fcm

ตัวเลือกที่ไม่ขึ้นอยู่กับแพลตฟอร์มสำหรับฟีเจอร์ที่ให้บริการโดย FCM SDK

การแสดง JSON
{
  "analytics_label": string
}
ช่อง
analytics_label

string

ป้ายกำกับที่เชื่อมโยงกับข้อมูลการวิเคราะห์ของข้อความ

เมธอด

send

ส่งข้อความไปยังเป้าหมายที่ระบุ (โทเค็นการลงทะเบียน หัวข้อ หรือเงื่อนไข)