REST Resource: projects.messages

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

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

การแสดง 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.notification") เมื่อส่งเพย์โหลดที่มีเฉพาะช่องข้อมูลไปยังอุปกรณ์ 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

AndroidConfig

ตัวเลือกเฉพาะของ 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 ประเภท Duration จะเข้ารหัสเป็นสตริงแทนที่จะเป็นออบเจ็กต์ โดยสตริงจะลงท้ายด้วยส่วนต่อท้าย "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

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

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

ลำดับความสำคัญของข้อความที่จะส่งไปยังอุปกรณ์ 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,
  "bypass_proxy_notification": boolean,
  "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

เสียงที่จะเล่นเมื่ออุปกรณ์ได้รับการแจ้งเตือน รองรับ "default" หรือชื่อไฟล์ของทรัพยากรเสียงที่รวมอยู่ในแอป โดยไฟล์เสียงต้องอยู่ใน /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)

กำหนดเวลาที่กิจกรรมในการแจ้งเตือนเกิดขึ้น การแจ้งเตือนในแผงจะจัดเรียงตามเวลานี้ จุดเวลาจะแสดงโดยใช้ protocolbuf.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)

ตั้งค่ารูปแบบการสั่นที่จะใช้ ส่งอาร์เรย์ protocolbuf.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

bypass_proxy_notification
(deprecated)

boolean

หากตั้งค่าไว้ แอปจะแสดงการแจ้งเตือนที่ส่งไปยังอุปกรณ์แทนพร็อกซี

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 ความละเอียดที่กำหนดโดย Prott.Duration

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

light_off_duration

string (Duration format)

ต้องระบุ กำหนดอัตราการกะพริบของแฟลช LED พร้อมกับ light_on_duration ความละเอียดที่กำหนดโดย Prott.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 แทนสเกลาร์แบบ Float ที่เรียบง่ายที่สุด เพื่อให้คุณแยกความแตกต่างระหว่างค่าเริ่มต้นกับค่าที่ไม่ได้ตั้งค่าได้ หากไม่ระบุ ออบเจ็กต์สีนี้จะแสดงเป็นสีทึบ (เสมือนว่าค่าอัลฟ่าได้รับค่าเป็น 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 โปรดดูส่วนหัวของคำขอ AAP สำหรับส่วนหัวที่รองรับ เช่น 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

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