REST Resource: projects.messages

संसाधन: मैसेज

Firebase क्लाउड से मैसेज सेवा से भेजने के लिए मैसेज.

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 डिवाइसों को सिर्फ़ डेटा फ़ील्ड वाले पेलोड भेजते समय, ApnsConfig में सिर्फ़ सामान्य प्राथमिकता ("apns-priority": "5") की अनुमति दी जाती है.

एक ऑब्जेक्ट जिसमें "key": value पेयर की सूची है. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notification

object (Notification)

सिर्फ़ इनपुट. सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, सूचना का बुनियादी टेंप्लेट.

android

object (AndroidConfig)

सिर्फ़ इनपुट. FCM कनेक्शन सर्वर के ज़रिए भेजे गए मैसेज के लिए Android के खास विकल्प.

webpush

object (WebpushConfig)

सिर्फ़ इनपुट. Webpush प्रोटोकॉल के विकल्प.

apns

object (ApnsConfig)

सिर्फ़ इनपुट. Apple Push Notification Service के खास विकल्प.

fcm_options

object (FcmOptions)

सिर्फ़ इनपुट. सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, FCM SDK टूल की सुविधा के विकल्पों के लिए टेंप्लेट.

यूनियन फ़ील्ड target. ज़रूरी है. सिर्फ़ इनपुट. मैसेज भेजने के लिए टारगेट करें. target इनमें से सिर्फ़ एक हो सकता है:
token

string

मैसेज भेजने के लिए रजिस्ट्रेशन टोकन.

topic

string

संदेश भेजने के लिए विषय का नाम, जैसे "मौसम". ध्यान दें: "/topics/" प्रीफ़िक्स नहीं होना चाहिए.

condition

string

मैसेज भेजने की शर्त, जैसे कि विषयों में "'foo' और विषयों में 'बार'.

सूचना

सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, सूचना का बुनियादी टेंप्लेट.

JSON के काेड में दिखाना
{
  "title": string,
  "body": string,
  "image": string
}
फ़ील्ड
title

string

सूचना का टाइटल.

body

string

सूचना का मुख्य टेक्स्ट.

image

string

इसमें उस इमेज का यूआरएल होता है जिसे डिवाइस पर डाउनलोड किया जाएगा और जो सूचना के तौर पर दिखाया जाएगा. JPEG, PNG, BMP, सभी प्लैटफ़ॉर्म पर काम करता है. ऐनिमेटेड GIF और वीडियो की सुविधा, सिर्फ़ iOS पर काम करती है. WebP और HEIF का अलग-अलग लेवल और प्लैटफ़ॉर्म वर्शन के हिसाब से इस्तेमाल किया जा सकता है. Android में 1 एमबी से ज़्यादा की इमेज अपलोड नहीं की जा सकती. Firebase स्टोरेज पर इमेज होस्ट करने के लिए कोटे का इस्तेमाल और असर/लागत: https://firebase.google.com/pricing

Android कॉन्फ़िगरेशन

FCM कनेक्शन सर्वर के ज़रिए भेजे गए मैसेज के लिए Android के खास विकल्प.

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

मैसेज के ऐसे ग्रुप का आइडेंटिफ़ायर जिसे छोटा किया जा सकता है, ताकि डिलीवरी फिर से शुरू होने पर सिर्फ़ आखिरी मैसेज भेजा जा सके. एक समय में, ज़्यादा से ज़्यादा चार अलग-अलग छोटा करने वाले बटनों की अनुमति दी जा सकती है.

priority

enum (AndroidMessagePriority)

मैसेज की प्राथमिकता. इसमें "सामान्य" और "ज़्यादा" वैल्यू इस्तेमाल की जा सकती हैं. ज़्यादा जानकारी के लिए, मैसेज की प्राथमिकता सेट करना देखें.

ttl

string (Duration format)

अगर डिवाइस ऑफ़लाइन है, तो मैसेज को FCM स्टोरेज में कितनी देर (सेकंड में) रखा जाना चाहिए. लाइव स्ट्रीम में ज़्यादा से ज़्यादा चार हफ़्ते लग सकते हैं. अगर यह अवधि सेट नहीं की गई है, तो डिफ़ॉल्ट तौर पर इसकी वैल्यू चार हफ़्ते की होती है. अगर तुरंत मैसेज भेजना है, तो इसे 0 पर सेट करें. JSON फ़ॉर्मैट में, अवधि के टाइप को ऑब्जेक्ट के बजाय स्ट्रिंग के तौर पर एन्कोड किया जाता है. इसमें स्ट्रिंग, सफ़िक्स "s" (सेकंड को दिखाता है) पर खत्म होती है. इसके बाद, कुछ सेकंड होते हैं. नैनोसेकंड को फ़्रैक्शनल सेकंड के तौर पर दिखाया जाता है. उदाहरण के लिए, 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)

Android के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.

direct_boot_ok

boolean

अगर नीति को 'सही है' पर सेट किया जाता है, तो डिवाइस के डायरेक्ट बूट मोड में होने पर ऐप्लिकेशन पर मैसेज डिलीवर किए जा सकेंगे. डायरेक्ट बूट मोड से जुड़ी सहायता देखें.

AndroidMessageप्राथमिकता

Android डिवाइसों पर भेजने के लिए मैसेज की प्राथमिकता. ध्यान दें कि यह प्राथमिकता FCM का ऐसा सिद्धांत है जिससे यह कंट्रोल किया जाता है कि मैसेज कब डिलीवर किया जाए. FCM गाइड देखें. इसके अलावा, AndroidNotification.NotificationActivity का इस्तेमाल करके टारगेट किए गए Android डिवाइसों पर सूचना दिखाने की प्राथमिकता भी तय की जा सकती है.

एनम्स
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 आपके ऐप्लिकेशन मेनिफ़ेस्ट में तय किया गया लॉन्चर आइकॉन दिखाता है.

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

सुलभता सेवाओं को भेजे जाने वाले "टिकर" टेक्स्ट को सेट करता है. एपीआई लेवल 21 (Lollipop) से पहले, सूचना के पहली बार आने पर, स्टेटस बार में दिखने वाले टेक्स्ट को सेट करता है.

sticky

boolean

अगर नीति को 'गलत है' पर सेट किया जाता है या सेट नहीं किया जाता है, तो पैनल में उपयोगकर्ता के क्लिक करने पर यह अपने-आप खारिज हो जाती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो उपयोगकर्ता के क्लिक करने के बाद भी यह सूचना दिखती रहती है.

event_time

string (Timestamp format)

सूचना में इवेंट के होने का समय सेट करें. पैनल में सूचनाएं इस समय के हिसाब से क्रम में लगी हैं. समय को protobuf.timestamp का इस्तेमाल करके दिखाया जाता है.

आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण: "2014-10-02T15:01:23Z" और "2014-10-02T15:01:23.045123456Z".

local_only

boolean

सेट करें कि यह नोटिफ़िकेशन केवल वर्तमान डिवाइस के लिए प्रासंगिक है या नहीं. कुछ सूचनाओं को रिमोट डिसप्ले के लिए दूसरे डिवाइसों पर जोड़ा जा सकता है, जैसे कि Wear OS स्मार्टवॉच. इस संकेत को यह सुझाव देने के लिए सेट किया जा सकता है कि इस सूचना को ऐक्सेस न किया जाए. Wear OS से जुड़ी गाइड देखें

notification_priority

enum (NotificationPriority)

इस सूचना को प्राथमिकता के हिसाब से सेट करें. प्राथमिकता से यह पता चलता है कि इस सूचना को देखकर उपयोगकर्ताओं का कितना ध्यान जा सकता है. कुछ परिस्थितियों में, कम प्राथमिकता वाली सूचनाएं उपयोगकर्ता से छिपी हो सकती हैं, जबकि उपयोगकर्ता को ज़्यादा प्राथमिकता वाली सूचना के लिए रोका जा सकता है. एक जैसी प्राथमिकताएं सेट करने का असर, अलग-अलग प्लैटफ़ॉर्म पर थोड़ा अलग हो सकता है. ध्यान दें कि यह प्राथमिकता, AndroidMessagePriority से अलग है. मैसेज डिलीवर होने के बाद क्लाइंट, इस प्राथमिकता को प्रोसेस करता है. वहीं, AndroidMessagePreferences, 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

अगर नीति को 'सही है' पर सेट किया जाता है, तो सूचना पाने के लिए Android फ़्रेमवर्क की, एलईडी लाइट की डिफ़ॉल्ट सेटिंग का इस्तेमाल करें. डिफ़ॉल्ट वैल्यू, config.xml में दी गई हैं. अगर default_light_settings को 'सही है' पर सेट किया गया है और light_settings को भी सेट किया गया है, तो डिफ़ॉल्ट वैल्यू के बजाय, उपयोगकर्ता के हिसाब से तय की गई light_settings का इस्तेमाल किया जाएगा.

vibrate_timings[]

string (Duration format)

इस्तेमाल करने के लिए वाइब्रेशन का पैटर्न सेट करें. वाइब्रेटर चालू या बंद करने के लिए, protobuf.Duration के कलेक्शन को पास करें. पहली वैल्यू से पता चलता है कि Duration को वाइब्रेटर चालू करने से पहले इंतज़ार करना होगा. अगली वैल्यू, वाइब्रेटर को चालू रखने के लिए Duration के बारे में बताती है. इसके बाद, वाइब्रेटर चालू करने और उसे बंद करने के लिए, Duration के बीच वैल्यू बदली जाती है. अगर vibrate_timings और default_vibrate_timings को true पर सेट किया गया है, तो उपयोगकर्ता के हिसाब से तय की गई vibrate_timings के बजाय, डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.

सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो 's' पर खत्म होता है. उदाहरण: "3.5s".

visibility

enum (Visibility)

सूचना की Notification.सूचना सेट करें.

notification_count

integer

इस सूचना में दिखाए जाने वाले आइटम की संख्या सेट करता है. इसे बैज की संख्या के तौर पर, उन लॉन्चर के लिए दिखाया जा सकता है जिन पर बैज काम करता है.सूचना का बैज देखें. उदाहरण के लिए, यह तब उपयोगी हो सकता है, जब आप एक से ज़्यादा नए मैसेज दिखाने के लिए सिर्फ़ एक सूचना का इस्तेमाल कर रहे हों, लेकिन आपको यहां बताई गई संख्या से नए मैसेज की कुल संख्या दिखानी हो. अगर यह संख्या शून्य है या सेट नहीं की गई है, तो बैजिंग का समर्थन करने वाले सिस्टम डिफ़ॉल्ट का उपयोग करते हैं, जो हर बार कोई नई सूचना आने पर देर तक दबाएं मेनू पर दिखाई जाने वाली संख्या को बढ़ाने के लिए है.

light_settings

object (LightSettings)

डिवाइस पर एलईडी उपलब्ध होने पर, सूचना की एलईडी ब्लिंक करने की दर और रंग को कंट्रोल करने की सेटिंग. ब्लिंक करने के कुल समय को ओएस कंट्रोल करता है.

image

string

इसमें उस इमेज का यूआरएल होता है जो सूचना में दिखाई जाएगी. अगर यह मौजूद होगा, तो यह google.firebase.fcm.v1.Notification.image को बदल देगा.

bypass_proxy_notification
(deprecated)

boolean

अगर नीति को सेट किया जाता है, तो डिवाइस पर डिलीवर की गई डिसप्ले सूचनाओं को प्रॉक्सी के बजाय ऐप्लिकेशन मैनेज करेगा.

proxy

enum (Proxy)

यह कंट्रोल करने के लिए सेट करना कि सूचना को कब प्रॉक्सी किया जा सकता है.

सूचना की प्राथमिकता

किसी सूचना के प्राथमिकता लेवल.

एनम्स
PRIORITY_UNSPECIFIED अगर प्राथमिकता नहीं बताई गई है, तो सूचना की प्राथमिकता PRIORITY_DEFAULT पर सेट होती है.
PRIORITY_MIN सूचना की सबसे कम प्राथमिकता. ऐसा हो सकता है कि इस PRIORITY_MIN वाली सूचनाएं, उपयोगकर्ता को कुछ खास मामलों में न दिखें. उदाहरण के लिए, पूरी जानकारी वाला सूचना लॉग.
PRIORITY_LOW सूचना की प्राथमिकता कम करें. यूज़र इंटरफ़ेस (यूआई), PRIORITY_DEFAULT में सूचनाओं के मुकाबले सूचनाओं को छोटा या सूची में किसी दूसरी जगह पर दिखाने का विकल्प चुन सकता है.
PRIORITY_DEFAULT सूचना की डिफ़ॉल्ट प्राथमिकता. अगर ऐप्लिकेशन खुद की सूचनाओं को प्राथमिकता नहीं देता है, तो सभी सूचनाओं के लिए इस वैल्यू का इस्तेमाल करें.
PRIORITY_HIGH सूचना पाने के लिए ज़्यादा प्राथमिकता. ज़्यादा ज़रूरी सूचनाओं या चेतावनियों के लिए, इसका इस्तेमाल करें. यूज़र इंटरफ़ेस (यूआई), PRIORITY_DEFAULT के साथ मिलने वाली सूचनाओं के मुकाबले, इन सूचनाओं को बड़ा या सूचना वाली सूचियों में किसी दूसरी जगह पर दिखाने का विकल्प चुन सकता है.
PRIORITY_MAX सूचना की सबसे ज़्यादा प्राथमिकता. इसका इस्तेमाल ऐप्लिकेशन के सबसे अहम आइटम के लिए करें. इनके लिए उपयोगकर्ता को तुरंत ध्यान देने या कुछ इनपुट करने की ज़रूरत होती है.

किसको दिखे

सूचना के दिखने के अलग-अलग लेवल.

एनम्स
VISIBILITY_UNSPECIFIED अगर इसके लिए कोई तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से Visibility.PRIVATE पर सेट करें.
PRIVATE यह सूचना सभी लॉकस्क्रीन पर दिखाएं, लेकिन सुरक्षित लॉकस्क्रीन पर संवेदनशील या निजी जानकारी छिपाएं.
PUBLIC इस सूचना को सभी लॉकस्क्रीन पर पूरी तरह से दिखाएं.
SECRET सुरक्षित लॉकस्क्रीन पर, इस सूचना का कोई भी हिस्सा न दिखाएं.

लाइट की सेटिंग

सूचना की एलईडी कंट्रोल करने की सेटिंग.

JSON के काेड में दिखाना
{
  "color": {
    object (Color)
  },
  "light_on_duration": string,
  "light_off_duration": string
}
फ़ील्ड
color

object (Color)

ज़रूरी है. color एलईडी को google.type.Color से सेट करें.

light_on_duration

string (Duration format)

ज़रूरी है. light_off_duration के साथ-साथ, एलईडी फ़्लैश के ब्लिंक की दर तय करें. रिज़ॉल्यूशन, proto.Duration से तय किया गया है

सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो 's' पर खत्म होता है. उदाहरण: "3.5s".

light_off_duration

string (Duration format)

ज़रूरी है. light_on_duration के साथ-साथ, एलईडी फ़्लैश के ब्लिंक की दर तय करें. रिज़ॉल्यूशन, proto.Duration से तय किया गया है

सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो 's' पर खत्म होता है. उदाहरण: "3.5s".

रंग

RGBA कलर स्पेस में कोई रंग दिखाता है. यह प्रज़ेंटेशन इस तरह से डिज़ाइन किया गया है कि कॉम्पैक्टनेस के बजाय, अलग-अलग भाषाओं में रंग को आसानी से समझा जा सके और उन्हें अलग-अलग भाषाओं में कैसे दिखाया जा सके. उदाहरण के लिए, इस रेप्रज़ेंटेशन के फ़ील्ड को Java में java.awt.Color के कंस्ट्रक्टर को आसानी से उपलब्ध कराया जा सकता है; इसे iOS में UIColor के +colorWithRed:green:blue:alpha तरीके में भी आसानी से उपलब्ध कराया जा सकता है; और बस थोड़ी सी मेहनत करके, इसे JavaScript में आसानी से सीएसएस rgba() स्ट्रिंग में फ़ॉर्मैट किया जा सकता है.

इस रेफ़रंस पेज में उस ऐब्सलूट कलर स्पेस से जुड़ी जानकारी नहीं है जिसका इस्तेमाल आरजीबी वैल्यू को समझने के लिए किया जाना चाहिए. उदाहरण के लिए, sRGB, Adobe RGB, DCI-P3, और BT.2020. डिफ़ॉल्ट रूप से, ऐप्लिकेशन को sRGB में कलर स्पेस के तौर पर माना जाना चाहिए.

जब रंग की समानता तय करने की ज़रूरत हो, तो लागू करने पर, जब तक कि कोई और दस्तावेज़ न हो, दो रंगों को बराबर मानें. अगर सभी लाल, हरे, नीले और ऐल्फ़ा वैल्यू में से हर एक की वैल्यू में ज़्यादा से ज़्यादा 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 वैल्यू पूरी तरह से पारदर्शी रंग से मेल खाती है. यह किसी सामान्य फ़्लोट स्केलर के बजाय रैपर मैसेज का इस्तेमाल करता है, ताकि डिफ़ॉल्ट वैल्यू और सेट न की जा रही वैल्यू के बीच अंतर किया जा सके. अगर छोड़ दिया जाता है, तो इस रंग ऑब्जेक्ट को एक ठोस रंग के रूप में रेंडर किया जाता है (जैसे कि ऐल्फ़ा वैल्यू को साफ़ तौर पर 1.0 का मान दिया गया था).

प्रॉक्सी

यह कंट्रोल करने के लिए सेट करना कि सूचना को कब प्रॉक्सी किया जा सकता है.

एनम्स
PROXY_UNSPECIFIED अगर इसके लिए कोई तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से Proxy.IF_PRIORITY_LOWERED पर सेट करें.
ALLOW इस सूचना को प्रॉक्सी करने की कोशिश करें.
DENY इस सूचना को प्रॉक्सी न करें.
IF_PRIORITY_LOWERED इस सूचना को प्रॉक्सी करने की कोशिश सिर्फ़ तब करें, जब डिवाइस पर इसकी AndroidMessagePriority को HIGH से कम करके NORMAL कर दिया गया हो.

AndroidFcm के विकल्प

Android के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.

JSON के काेड में दिखाना
{
  "analytics_label": string
}
फ़ील्ड
analytics_label

string

मैसेज के आंकड़ों के डेटा से जुड़ा लेबल.

वेबपुश कॉन्फ़िगरेशन

Webpush प्रोटोकॉल के विकल्प.

JSON के काेड में दिखाना
{
  "headers": {
    string: string,
    ...
  },
  "data": {
    string: string,
    ...
  },
  "notification": {
    object
  },
  "fcm_options": {
    object (WebpushFcmOptions)
  }
}
फ़ील्ड
headers

map (key: string, value: string)

वेबपुश प्रोटोकॉल में तय किए गए एचटीटीपी हेडर. काम करने वाले हेडर के लिए 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

मैसेज के आंकड़ों के डेटा से जुड़ा लेबल.

ऐप्लिकेशन कॉन्फ़िगरेशन

Apple Push Notification Service के खास विकल्प.

JSON के काेड में दिखाना
{
  "headers": {
    string: string,
    ...
  },
  "payload": {
    object
  },
  "fcm_options": {
    object (ApnsFcmOptions)
  }
}
फ़ील्ड
headers

map (key: string, value: string)

Apple Push Notification Service में बताए गए एचटीटीपी अनुरोध के हेडर. apns-expiration और apns-priority जैसे काम करने वाले हेडर के लिए, APNs अनुरोध हेडर देखें.

बैकएंड में, 30 दिनों के apns-expiration के लिए डिफ़ॉल्ट वैल्यू और 10 दिनों के लिए apns-priority की डिफ़ॉल्ट वैल्यू सेट की जाती है. अगर इस वैल्यू को साफ़ तौर पर सेट नहीं किया गया है, तो यह भी सेट किया जा सकता है.

एक ऑब्जेक्ट जिसमें "key": value पेयर की सूची है. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

payload

object (Struct format)

एपीएन पेलोड, JSON ऑब्जेक्ट के तौर पर मौजूद होते हैं. इनमें aps डिक्शनरी और कस्टम पेलोड, दोनों शामिल हैं. पेलोड कुंजी का संदर्भ देखें. अगर यह मौजूद है, तो यह google.firebase.fcm.v1.Notification.title और google.firebase.fcm.v1.Notification.body को बदल देता है.

fcm_options

object (ApnsFcmOptions)

iOS के लिए, FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.

ApnsFcmविकल्प

iOS के लिए, FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.

JSON के काेड में दिखाना
{
  "analytics_label": string,
  "image": string
}
फ़ील्ड
analytics_label

string

मैसेज के आंकड़ों के डेटा से जुड़ा लेबल.

image

string

इसमें उस इमेज का यूआरएल होता है जो सूचना में दिखाई जाएगी. अगर यह मौजूद होगा, तो यह google.firebase.fcm.v1.Notification.image को बदल देगा.

एफ़सीएम ऑप्शन

FCM SDK टूल की सुविधाओं के लिए, प्लैटफ़ॉर्म के अलग-अलग विकल्प.

JSON के काेड में दिखाना
{
  "analytics_label": string
}
फ़ील्ड
analytics_label

string

मैसेज के आंकड़ों के डेटा से जुड़ा लेबल.

तरीके

send

बताए गए टारगेट (रजिस्ट्रेशन टोकन, विषय या शर्त) को मैसेज भेजें.