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

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

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 มีขนาดรูปภาพจำกัดที่ 1MB การใช้โควต้าและผลกระทบ/ต้นทุนสำหรับการโฮสต์ภาพบน Firebase Storage: 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 นานเท่าใด (เป็นวินาที) หากอุปกรณ์ออฟไลน์อยู่ ระยะเวลาสูงสุดในการสนับสนุนคือ 4 สัปดาห์ และค่าเริ่มต้นคือ 4 สัปดาห์หากไม่ได้ตั้งค่าไว้ ตั้งค่าเป็น 0 หากต้องการส่งข้อความทันที ในรูปแบบ JSON ประเภทระยะเวลาจะถูกเข้ารหัสเป็นสตริงแทนที่จะเป็นอ็อบเจ็กต์ โดยที่สตริงลงท้ายด้วยส่วนต่อท้าย "s" (หมายถึงวินาที) และนำหน้าด้วยจำนวนวินาที โดยนาโนวินาทีจะแสดงเป็นเศษส่วนวินาที ตัวอย่างเช่น 3 วินาทีที่มี 0 นาโนวินาทีควรเข้ารหัสในรูปแบบ JSON เป็น "3s" ในขณะที่ 3 วินาทีและ 1 นาโนวินาทีควรแสดงในรูปแบบ JSON เป็น "3.000000001s" ttl จะถูกปัดเศษลงเป็นวินาทีที่ใกล้ที่สุด

ระยะเวลาเป็นวินาทีโดยมีเศษส่วนไม่เกินเก้าหลัก และลงท้ายด้วย ' 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

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

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

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

เอนัม
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,
}
เขตข้อมูล
title

string

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

body

string

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

icon

string

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

color

string

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

sound

string

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

tag

string

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

click_action

string

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

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 จะใช้รหัสช่องที่ระบุในรายการแอป

ticker

string

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

sticky

boolean

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

event_time

string ( Timestamp format)

ตั้งเวลาที่เกิดเหตุการณ์ในการแจ้งเตือน การแจ้งเตือนในแผงจะจัดเรียงตามเวลานี้ จุดในเวลาแสดงโดยใช้ protobuf.Timestamp

การประทับเวลาในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและเศษส่วนสูงสุดเก้าหลัก ตัวอย่าง: "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 เป็น true และตั้ง vibrate_timings ไว้ด้วย ระบบจะใช้ค่าเริ่มต้นแทน vibrate_timings ที่ผู้ใช้ระบุ

default_light_settings

boolean

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

vibrate_timings[]

string ( Duration format)

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

ระยะเวลาเป็นวินาทีโดยมีเศษส่วนไม่เกินเก้าหลัก และลงท้ายด้วย ' s ' ตัวอย่าง: "3.5s"

visibility

enum ( Visibility )

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

notification_count

integer

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

light_settings

object ( LightSettings )

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

image

string

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

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

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

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

ทัศนวิสัย

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

เอนัม
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)

ที่จำเป็น. นอกเหนือจาก light_off_duration แล้ว ให้กำหนดอัตราการกะพริบของไฟ LED กะพริบ ความละเอียดที่กำหนดโดย proto.Duration

ระยะเวลาเป็นวินาทีโดยมีเศษส่วนไม่เกินเก้าหลัก และลงท้ายด้วย ' s ' ตัวอย่าง: "3.5s"

light_off_duration

string ( Duration format)

ที่จำเป็น. นอกเหนือจาก light_on_duration แล้ว ให้กำหนดอัตราการกะพริบของไฟ LED กะพริบ ความละเอียดที่กำหนดโดย proto.Duration

ระยะเวลาเป็นวินาทีโดยมีเศษส่วนไม่เกินเก้าหลัก และลงท้ายด้วย ' 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

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

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

 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;
}
// ...

ตัวอย่าง (จาวาสคริปต์):

// ...

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 สอดคล้องกับสีโปร่งใสโดยสมบูรณ์ ซึ่งใช้ข้อความแบบตัดคำแทนสเกลาร์ทศนิยมแบบธรรมดา เพื่อให้สามารถแยกแยะระหว่างค่าเริ่มต้นและค่าที่ไม่ได้ตั้งค่าได้ หากละเว้น ออบเจ็กต์สีนี้จะถูกเรนเดอร์เป็นสีทึบ (ราวกับว่าค่าอัลฟ่าถูกกำหนดไว้อย่างชัดเจนเป็น 1.0)

ตัวเลือก 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 หากมี ช่อง "title" และ "body" จะแทนที่ 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

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

การเป็นตัวแทน JSON
{
  "headers": {
    string: string,
    ...
  },
  "payload": {
    object
  },
  "fcm_options": {
    object (ApnsFcmOptions)
  }
}
เขตข้อมูล
headers

map (key: string, value: string)

ส่วนหัวคำขอ HTTP ที่กำหนดไว้ใน Apple Push Notification Service โปรดดู ส่วนหัวคำขอ APN สำหรับส่วนหัวที่รองรับ เช่น 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

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