REST Resource: projects.messages

Tài nguyên: Thông báo

Tin nhắn cần gửi bằng Dịch vụ nhắn tin qua đám mây của Firebase.

Biểu diễn dưới dạng 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.
}
Trường
name

string

Chỉ có đầu ra. Giá trị nhận dạng của thư được gửi, ở định dạng projects/*/messages/{message_id}.

data

map (key: string, value: string)

Chỉ nhập. Tải trọng giá trị/khoá tuỳ ý, phải được mã hoá UTF-8. Khoá không được là một từ dành riêng ("từ", "message_type" hoặc bất kỳ từ nào bắt đầu bằng "google." hoặc "gcm.notification."). Khi gửi các gói dữ liệu chỉ chứa trường dữ liệu tới thiết bị iOS, chỉ mức độ ưu tiên bình thường ("apns-priority": "5") được cho phép trong ApnsConfig.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notification

object (Notification)

Chỉ nhập. Mẫu thông báo cơ bản để sử dụng trên tất cả nền tảng.

android

object (AndroidConfig)

Chỉ nhập. Các tuỳ chọn dành riêng cho Android cho tin nhắn gửi qua máy chủ kết nối FCM.

webpush

object (WebpushConfig)

Chỉ nhập. Tuỳ chọn giao thức Webpush.

apns

object (ApnsConfig)

Chỉ nhập. Các tuỳ chọn cụ thể cho Dịch vụ thông báo đẩy của Apple.

fcm_options

object (FcmOptions)

Chỉ nhập. Mẫu cho các tuỳ chọn tính năng SDK FCM để sử dụng trên tất cả các nền tảng.

Trường kết hợp target. Bắt buộc. Chỉ nhập. Mục tiêu để gửi tin nhắn. target chỉ có thể là một trong những trạng thái sau đây:
token

string

Mã thông báo đăng ký để gửi tin nhắn.

topic

string

Tên chủ đề để gửi tin nhắn, ví dụ: "thời tiết". Lưu ý: Không nên cung cấp tiền tố "/topics/".

condition

string

Điều kiện để gửi thư, ví dụ: "'foo' trong chủ đề && 'bar' trong chủ đề".

Thông báo

Mẫu thông báo cơ bản để sử dụng trên tất cả nền tảng.

Biểu diễn dưới dạng JSON
{
  "title": string,
  "body": string,
  "image": string
}
Trường
title

string

Tiêu đề của thông báo.

body

string

Văn bản nội dung của thông báo.

image

string

Chứa URL của hình ảnh sẽ được tải xuống thiết bị và hiển thị trong thông báo. JPEG, PNG, BMP được hỗ trợ đầy đủ trên các nền tảng. Video và GIF động chỉ hoạt động trên iOS. WebP và HEIF có các mức hỗ trợ khác nhau trên các nền tảng và phiên bản nền tảng. Android có giới hạn kích thước hình ảnh là 1 MB. Mức sử dụng và ý nghĩa/chi phí của hạn mức khi lưu trữ hình ảnh trên Bộ nhớ Firebase: https://firebase.google.com/pricing

Cấu hình Android

Các tuỳ chọn dành riêng cho Android cho tin nhắn gửi qua máy chủ kết nối FCM.

Biểu diễn dưới dạng 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
}
Trường
collapse_key

string

Giá trị nhận dạng của một nhóm thư có thể thu gọn được để chỉ gửi tin nhắn cuối cùng khi có thể tiếp tục gửi. Mỗi thời điểm chỉ được phép có tối đa 4 khoá thu gọn khác nhau.

priority

enum (AndroidMessagePriority)

Mức độ ưu tiên của thư. Có thể nhận giá trị "bình thường" và "cao". Để biết thêm thông tin, hãy xem Đặt mức độ ưu tiên của thư.

ttl

string (Duration format)

Khoảng thời gian (tính bằng giây) tin nhắn sẽ được lưu giữ trong bộ nhớ FCM nếu thiết bị không có kết nối mạng. Thời gian phát trực tiếp tối đa được hỗ trợ là 4 tuần và giá trị mặc định là 4 tuần nếu không đặt. Đặt thành 0 nếu bạn muốn gửi tin nhắn ngay lập tức. Ở định dạng JSON, loại Thời lượng được mã hoá dưới dạng chuỗi thay vì đối tượng, trong đó chuỗi kết thúc bằng hậu tố "s" (tức là giây) và đứng sau số giây, với nano giây được biểu thị dưới dạng giây phân số. Ví dụ: 3 giây có 0 nano giây phải được mã hoá ở định dạng JSON là "3s", trong khi 3 giây và 1 nano giây phải được biểu thị ở định dạng JSON là "3.000000001s". Số ttl sẽ được làm tròn xuống giây gần nhất.

Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng "s". Ví dụ: "3.5s".

restricted_package_name

string

Tên gói của ứng dụng trong đó mã thông báo đăng ký phải khớp để nhận được thông báo.

data

map (key: string, value: string)

Tải trọng khoá/giá trị tuỳ ý. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Message.data.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notification

object (AndroidNotification)

Thông báo gửi đến thiết bị Android.

fcm_options

object (AndroidFcmOptions)

Các tuỳ chọn cho các tính năng do SDK FCM dành cho Android cung cấp.

direct_boot_ok

boolean

Nếu bạn đặt chính sách này thành true, thì tin nhắn sẽ được phép gửi tới ứng dụng khi thiết bị đang ở chế độ khởi động trực tiếp. Hãy xem bài viết Hỗ trợ chế độ Khởi động trực tiếp.

Mức độ ưu tiên của AndroidMessagePriority

Mức độ ưu tiên của tin nhắn để gửi đến các thiết bị Android. Lưu ý rằng mức độ ưu tiên này là một khái niệm FCM giúp kiểm soát thời điểm gửi tin nhắn. Xem hướng dẫn về FCM. Ngoài ra, bạn có thể xác định mức độ ưu tiên hiển thị thông báo trên các thiết bị Android được nhắm đến bằng AndroidNotification.NotificationPriority.

Enum
NORMAL Mức độ ưu tiên mặc định cho thông báo dữ liệu. Các tin nhắn có mức độ ưu tiên bình thường sẽ không mở kết nối mạng trên một thiết bị đang ngủ và việc gửi tin nhắn có thể bị chậm trễ để tiết kiệm pin. Đối với các thư ít tốn thời gian hơn, chẳng hạn như thông báo về email mới hoặc dữ liệu khác cần đồng bộ hoá, hãy chọn mức độ ưu tiên gửi bình thường.
HIGH Mức độ ưu tiên mặc định cho tin nhắn thông báo. FCM cố gắng gửi ngay các tin nhắn có mức độ ưu tiên cao, cho phép dịch vụ FCM đánh thức một thiết bị đang ngủ khi có thể và mở kết nối mạng đến máy chủ ứng dụng của bạn. Ví dụ: các ứng dụng có chức năng nhắn tin nhanh, trò chuyện hoặc cuộc gọi thoại thường cần mở kết nối mạng và đảm bảo FCM gửi tin nhắn đến thiết bị ngay lập tức. Đặt mức độ ưu tiên cao nếu thông báo có mức độ quan trọng về thời gian và cần người dùng phải tương tác ngay lập tức, nhưng hãy lưu ý rằng việc đặt thông báo của bạn ở mức độ ưu tiên cao sẽ góp phần tiêu hao pin nhiều hơn so với các thông báo có mức độ ưu tiên thông thường.

Thông báo trên Android

Thông báo gửi đến thiết bị Android.

Biểu diễn dưới dạng 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)
}
Trường
title

string

Tiêu đề của thông báo. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Notification.title.

body

string

Văn bản nội dung của thông báo. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Notification.body.

icon

string

Biểu tượng của thông báo. Đặt biểu tượng thông báo thành myicon cho biểu tượng myicon của tài nguyên có thể vẽ. Nếu bạn không gửi khoá này trong yêu cầu, FCM sẽ hiển thị biểu tượng trình chạy được chỉ định trong tệp kê khai ứng dụng của bạn.

color

string

Màu biểu tượng của thông báo, được thể hiện ở định dạng #rrggbb.

sound

string

Âm thanh sẽ phát khi thiết bị nhận được thông báo. Hỗ trợ "mặc định" hoặc tên tệp của tài nguyên âm thanh được đi kèm trong ứng dụng. Tệp âm thanh phải nằm trong /res/raw/.

tag

string

Giá trị nhận dạng dùng để thay thế thông báo hiện có trong ngăn thông báo. Nếu không được chỉ định, mỗi yêu cầu sẽ tạo một thông báo mới. Nếu được chỉ định và thông báo có cùng thẻ đã được hiển thị thì thông báo mới sẽ thay thế thông báo hiện có trong ngăn thông báo.

click_action

string

Hành động liên quan đến lượt nhấp của người dùng vào thông báo. Nếu được chỉ định, một hoạt động có bộ lọc ý định phù hợp sẽ chạy khi người dùng nhấp vào thông báo.

body_loc_key

string

Khoá cho chuỗi nội dung trong tài nguyên chuỗi của ứng dụng được dùng để bản địa hoá văn bản nội dung theo nội dung bản địa hoá hiện tại của người dùng. Xem Tài nguyên chuỗi để biết thêm thông tin.

body_loc_args[]

string

Giá trị chuỗi biến được sử dụng thay cho thông số định dạng trong body_loc_key để bản địa hoá văn bản nội dung theo nội dung bản địa hoá hiện tại của người dùng. Xem phần Định dạng và định kiểu để biết thêm thông tin.

title_loc_key

string

Khoá cho chuỗi tiêu đề trong tài nguyên chuỗi của ứng dụng được dùng để bản địa hoá văn bản tiêu đề theo nội dung bản địa hoá hiện tại của người dùng. Xem Tài nguyên chuỗi để biết thêm thông tin.

title_loc_args[]

string

Sử dụng các giá trị chuỗi biến thay cho thông số định dạng trong title_loc_key nhằm bản địa hoá văn bản tiêu đề theo nội dung bản địa hoá hiện tại của người dùng. Xem phần Định dạng và định kiểu để biết thêm thông tin.

channel_id

string

Id kênh của thông báo (mới trong Android O). Ứng dụng phải tạo một kênh bằng mã nhận dạng kênh này thì mới nhận được bất kỳ thông báo nào có mã nhận dạng kênh này. Nếu bạn không gửi mã nhận dạng kênh này trong yêu cầu hoặc nếu ứng dụng chưa tạo mã nhận dạng kênh được cung cấp, thì FCM sẽ sử dụng mã nhận dạng kênh được chỉ định trong tệp kê khai ứng dụng.

ticker

string

Đặt văn bản "biểu ngữ" được gửi đến các dịch vụ hỗ trợ tiếp cận. Trước API cấp 21 (Lollipop), thiết lập văn bản được hiển thị trên thanh trạng thái khi thông báo xuất hiện lần đầu.

sticky

boolean

Khi bạn đặt chính sách này thành false hoặc không đặt, thông báo sẽ tự động bị đóng khi người dùng nhấp vào thông báo trong bảng điều khiển. Khi bạn đặt chính sách này thành true, thông báo vẫn tồn tại ngay cả khi người dùng nhấp vào thông báo đó.

event_time

string (Timestamp format)

Đặt thời gian diễn ra sự kiện trong thông báo. Thông báo trong bảng điều khiển được sắp xếp theo thời gian này. Một thời điểm được biểu thị bằng protobuf.Timestamp.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

local_only

boolean

Thiết lập xem thông báo này có chỉ liên quan đến thiết bị hiện tại hay không. Một số thông báo có thể được kết nối với các thiết bị khác để hiển thị từ xa, chẳng hạn như đồng hồ Wear OS. Bạn có thể đặt gợi ý này để đề xuất không nên bắc cầu thông báo này. Xem Hướng dẫn về Wear OS

notification_priority

enum (NotificationPriority)

Đặt mức độ ưu tiên tương đối cho thông báo này. Mức độ ưu tiên là cho biết mức độ chú ý của người dùng vào thông báo này. Thông báo có mức độ ưu tiên thấp có thể bị ẩn đối với người dùng trong một số trường hợp nhất định, còn người dùng có thể bị gián đoạn để nhận thông báo có mức độ ưu tiên cao hơn. Tác động của việc đặt các mức độ ưu tiên giống nhau có thể khác nhau đôi chút trên các nền tảng khác nhau. Xin lưu ý rằng mức độ ưu tiên này khác với AndroidMessagePriority. Ứng dụng sẽ xử lý mức độ ưu tiên này sau khi tin nhắn được gửi, trong khi AndroidMessagePriority là một khái niệm FCM giúp kiểm soát thời điểm gửi tin nhắn.

default_sound

boolean

Nếu bạn đặt chính sách này thành true, hãy sử dụng âm thanh mặc định của khung Android cho thông báo. Các giá trị mặc định được chỉ định trong config.xml.

default_vibrate_timings

boolean

Nếu bạn đặt chính sách này thành true, thì hãy sử dụng mẫu rung mặc định của khung Android cho thông báo. Các giá trị mặc định được chỉ định trong config.xml. Nếu bạn đặt default_vibrate_timings thành true và đặt vibrate_timings thành thì giá trị mặc định sẽ được sử dụng thay cho vibrate_timings do người dùng chỉ định.

default_light_settings

boolean

Nếu bạn đặt chính sách này thành true, thì hãy sử dụng chế độ cài đặt đèn LED mặc định của khung Android cho thông báo. Các giá trị mặc định được chỉ định trong config.xml. Nếu default_light_settings được đặt thành true và light_settings cũng được thiết lập, thì light_settings do người dùng chỉ định sẽ được sử dụng thay cho giá trị mặc định.

vibrate_timings[]

string (Duration format)

Đặt hình rung để sử dụng. Truyền một mảng protobuf.Duration để bật hoặc tắt bộ rung. Giá trị đầu tiên cho biết Duration sẽ chờ trước khi bật bộ rung. Giá trị tiếp theo cho biết Duration để tiếp tục bật bộ rung. Các giá trị tiếp theo sẽ thay đổi giữa Duration để tắt bộ rung và bật bộ rung. Nếu bạn đặt vibrate_timings và đặt default_vibrate_timings thành true, thì giá trị mặc định sẽ được sử dụng thay cho vibrate_timings do người dùng chỉ định.

Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng "s". Ví dụ: "3.5s".

visibility

enum (Visibility)

Đặt Notification.Visibility của thông báo.

notification_count

integer

Đặt số lượng mục mà thông báo này đại diện. Có thể hiển thị dưới dạng số lượng huy hiệu cho những trình chạy hỗ trợ huy hiệu.Hãy xem phần Huy hiệu thông báo. Ví dụ: điều này có thể hữu ích nếu bạn đang sử dụng chỉ một thông báo để thể hiện nhiều thư mới nhưng lại muốn số lượng ở đây thể hiện tổng số thư mới. Nếu bằng 0 hoặc chưa được chỉ định, các hệ thống hỗ trợ huy hiệu sẽ sử dụng chế độ mặc định, tức là tăng một số hiển thị trên trình đơn nhấn và giữ mỗi khi có thông báo mới.

light_settings

object (LightSettings)

Các chế độ cài đặt để kiểm soát màu và tốc độ nhấp nháy đèn LED của thông báo nếu thiết bị có đèn LED. Tổng thời gian nhấp nháy do hệ điều hành kiểm soát.

image

string

Chứa URL của một hình ảnh sẽ được hiển thị trong thông báo. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Notification.image.

bypass_proxy_notification
(deprecated)

boolean

Nếu được đặt, các thông báo hiển thị được gửi tới thiết bị sẽ do ứng dụng xử lý thay vì proxy.

proxy

enum (Proxy)

Cài đặt để kiểm soát thời điểm có thể xử lý một thông báo qua máy chủ proxy.

Mức độ ưu tiên của thông báo

Các mức độ ưu tiên của một thông báo.

Enum
PRIORITY_UNSPECIFIED Nếu bạn chưa chỉ định mức độ ưu tiên, thì mức độ ưu tiên của thông báo sẽ được đặt thành PRIORITY_DEFAULT.
PRIORITY_MIN Mức độ ưu tiên thấp nhất của thông báo. Người dùng có thể không nhìn thấy thông báo có PRIORITY_MIN này, trừ một số trường hợp đặc biệt, chẳng hạn như nhật ký thông báo chi tiết.
PRIORITY_LOW Mức độ ưu tiên thấp hơn của thông báo. Giao diện người dùng có thể chọn hiện thông báo ở kích thước nhỏ hơn hoặc ở một vị trí khác trong danh sách, so với các thông báo có PRIORITY_DEFAULT.
PRIORITY_DEFAULT Mức độ ưu tiên mặc định của thông báo. Nếu ứng dụng không ưu tiên các thông báo của chính mình, hãy sử dụng giá trị này cho tất cả thông báo.
PRIORITY_HIGH Mức độ ưu tiên cao hơn cho thông báo. Hãy sử dụng thông tin này để nhận các thông báo hoặc cảnh báo quan trọng khác. Giao diện người dùng có thể chọn hiện những thông báo ở kích thước lớn hơn hoặc ở một vị trí khác trong danh sách thông báo, so với các thông báo có PRIORITY_DEFAULT.
PRIORITY_MAX Mức độ ưu tiên cao nhất của thông báo. Sử dụng lựa chọn này cho các mục quan trọng nhất của ứng dụng cần người dùng chú ý hoặc nhập thông tin kịp thời.

Hỗ trợ về khả năng nhìn

Các mức hiển thị khác nhau của một thông báo.

Enum
VISIBILITY_UNSPECIFIED Nếu bạn chưa chỉ định, hãy đặt mặc định thành Visibility.PRIVATE.
PRIVATE Hiện thông báo này trên mọi màn hình khoá, nhưng ẩn thông tin nhạy cảm hoặc riêng tư trên màn hình khoá an toàn.
PUBLIC Hiện toàn bộ thông báo này trên tất cả màn hình khoá.
SECRET Không để lộ bất kỳ phần nào của thông báo này trên màn hình khoá bảo mật.

Cài đặt đèn

Các chế độ cài đặt để kiểm soát đèn LED thông báo.

Biểu diễn dưới dạng JSON
{
  "color": {
    object (Color)
  },
  "light_on_duration": string,
  "light_off_duration": string
}
Trường
color

object (Color)

Bắt buộc. Đặt color của đèn LED bằng google.type.Color.

light_on_duration

string (Duration format)

Bắt buộc. Cùng với light_off_duration, hãy xác định tốc độ nhấp nháy của đèn LED flash. Độ phân giải được xác định bằng proto.Duration

Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng "s". Ví dụ: "3.5s".

light_off_duration

string (Duration format)

Bắt buộc. Cùng với light_on_duration, hãy xác định tốc độ nhấp nháy của đèn LED flash. Độ phân giải được xác định bằng proto.Duration

Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng "s". Ví dụ: "3.5s".

Màu

Đại diện cho một màu trong hệ màu RGBA. Cách trình bày này được thiết kế để đơn giản hoá việc chuyển đổi sang và từ các bản trình bày màu sắc bằng nhiều ngôn ngữ khác nhau sao cho gọn nhẹ. Ví dụ: các trường của biểu diễn này có thể được cung cấp đơn giản cho hàm khởi tạo của java.awt.Color trong Java; nó cũng có thể được cung cấp đơn giản cho phương thức +colorWithRed:green:blue:alpha của UIColor trong iOS; và chỉ với một chút thao tác, nó có thể dễ dàng được định dạng thành chuỗi CSS rgba() trong JavaScript.

Trang tham khảo này không có thông tin về hệ màu tuyệt đối cần dùng để diễn giải giá trị RGB – ví dụ: sRGB, Adobe RGB, DCI-P3 và BT.2020. Theo mặc định, các ứng dụng sẽ giả định hệ màu sRGB.

Khi cần phải quyết định sự cân bằng về màu sắc, quá trình triển khai sẽ coi 2 màu là bằng nhau nếu tất cả các giá trị màu đỏ, xanh lục, xanh dương và alpha chênh lệch nhau tối đa là 1e-5.

Ví dụ (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();
 }
 // ...

Ví dụ (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;
}
// ...

Ví dụ (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('');
};

// ...
Biểu diễn dưới dạng JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
Trường
red

number

Lượng màu đỏ trong màu dưới dạng một giá trị trong khoảng [0, 1].

green

number

Lượng màu xanh lục trong màu dưới dạng một giá trị trong khoảng [0, 1].

blue

number

Lượng màu xanh dương trong màu dưới dạng một giá trị trong khoảng [0, 1].

alpha

number

Tỷ lệ của màu này sẽ được áp dụng cho điểm ảnh. Tức là màu pixel cuối cùng được xác định theo phương trình:

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

Tức là giá trị 1.0 tương ứng với một màu đồng nhất, trong khi giá trị 0.0 tương ứng với một màu hoàn toàn trong suốt. Tính năng này sử dụng một thông báo trình bao bọc thay vì một đại lượng vô hướng số thực đơn giản để có thể phân biệt giữa giá trị mặc định và giá trị chưa được đặt. Nếu bạn bỏ qua, đối tượng màu này sẽ hiển thị dưới dạng một màu đồng nhất (như thể giá trị alpha đã được cung cấp rõ ràng giá trị là 1.0).

Proxy

Cài đặt để kiểm soát thời điểm có thể xử lý một thông báo qua máy chủ proxy.

Enum
PROXY_UNSPECIFIED Nếu bạn chưa chỉ định, hãy đặt mặc định thành Proxy.IF_PRIORITY_LOWERED.
ALLOW Hãy thử proxy thông báo này.
DENY Không proxy thông báo này.
IF_PRIORITY_LOWERED Chỉ cố gắng proxy thông báo này nếu AndroidMessagePriority của thông báo đã được giảm từ HIGH xuống NORMAL trên thiết bị.

Tùy chọn AndroidFcm

Các tuỳ chọn cho các tính năng do SDK FCM dành cho Android cung cấp.

Biểu diễn dưới dạng JSON
{
  "analytics_label": string
}
Trường
analytics_label

string

Nhãn được liên kết với dữ liệu phân tích của thư.

Cấu hình đẩy web

Tuỳ chọn giao thức Webpush.

Biểu diễn dưới dạng JSON
{
  "headers": {
    string: string,
    ...
  },
  "data": {
    string: string,
    ...
  },
  "notification": {
    object
  },
  "fcm_options": {
    object (WebpushFcmOptions)
  }
}
Trường
headers

map (key: string, value: string)

Tiêu đề HTTP được xác định trong giao thức webpush. Tham khảo Giao thức Webpush để biết các tiêu đề được hỗ trợ, ví dụ: "TTL": "15".

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

data

map (key: string, value: string)

Tải trọng khoá/giá trị tuỳ ý. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Message.data.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notification

object (Struct format)

Các tuỳ chọn Thông báo trên web làm đối tượng JSON. Hỗ trợ các thuộc tính thực thể của Notification như được xác định trong Web Notification API. Nếu có, các trường "title" (tiêu đề) và "body" (nội dung) sẽ ghi đè google.firebase.fcm.v1.Notification.titlegoogle.firebase.fcm.v1.Notification.body.

fcm_options

object (WebpushFcmOptions)

Các tuỳ chọn dành cho các tính năng do SDK FCM dành cho web cung cấp.

Tùy chọn WebpushFcm

Các tuỳ chọn dành cho các tính năng do SDK FCM dành cho web cung cấp.

Biểu diễn dưới dạng JSON
{
  "link": string,
  "analytics_label": string
}
Trường
analytics_label

string

Nhãn được liên kết với dữ liệu phân tích của thư.

Cấu hình ApnsConfig

Các tuỳ chọn cụ thể cho Dịch vụ thông báo đẩy của Apple.

Biểu diễn dưới dạng JSON
{
  "headers": {
    string: string,
    ...
  },
  "payload": {
    object
  },
  "fcm_options": {
    object (ApnsFcmOptions)
  }
}
Trường
headers

map (key: string, value: string)

Tiêu đề của yêu cầu HTTP được xác định trong Dịch vụ thông báo đẩy của Apple. Tham khảo tiêu đề của yêu cầu ApN để biết các tiêu đề được hỗ trợ như apns-expirationapns-priority.

Phần phụ trợ đặt giá trị mặc định là apns-expiration là 30 ngày và giá trị mặc định là apns-priority là 10 nếu không được đặt rõ ràng.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

payload

object (Struct format)

Tải trọng APN dưới dạng đối tượng JSON, bao gồm cả từ điển aps và tải trọng tuỳ chỉnh. Hãy xem Tài liệu tham khảo về khoá tải trọng. Nếu có, hàm này sẽ ghi đè google.firebase.fcm.v1.Notification.titlegoogle.firebase.fcm.v1.Notification.body.

fcm_options

object (ApnsFcmOptions)

Các tuỳ chọn cho các tính năng do FCM SDK dành cho iOS cung cấp.

Tùy chọn ApnsFcm

Các tuỳ chọn cho các tính năng do FCM SDK dành cho iOS cung cấp.

Biểu diễn dưới dạng JSON
{
  "analytics_label": string,
  "image": string
}
Trường
analytics_label

string

Nhãn được liên kết với dữ liệu phân tích của thư.

image

string

Chứa URL của một hình ảnh sẽ được hiển thị trong thông báo. Nếu có, lệnh này sẽ ghi đè google.firebase.fcm.v1.Notification.image.

Tùy chọn Fcm

Các lựa chọn độc lập với nền tảng cho các tính năng do SDK FCM cung cấp.

Biểu diễn dưới dạng JSON
{
  "analytics_label": string
}
Trường
analytics_label

string

Nhãn được liên kết với dữ liệu phân tích của thư.

Phương thức

send

Gửi tin nhắn đến đích đã chỉ định (mã thông báo đăng ký, chủ đề hoặc điều kiện).