सूचना पेलोड में इमेज भेजें

FCM HTTP v1 API और Notifications composer, डिसप्ले नोटिफ़िकेशन के पेलोड में इमेज के लिंक भेजने की सुविधा देते हैं. इससे, डिलीवरी के बाद डिवाइस पर इमेज डाउनलोड की जा सकती है. यह सुविधा, Apple के ऐप्लिकेशन के लिए इमेज और वीडियो, दोनों के साथ काम करती है. फ़ाइल के साइज़ की सीमाओं के बारे में जानने के लिए, Apple का दस्तावेज़ देखें.

Apple ऐप्लिकेशन में सूचना वाली इमेज पाने और उन्हें मैनेज करने के लिए, आपको सूचना सेवा एक्सटेंशन जोड़ना होगा. सूचना सेवा एक्सटेंशन आपके ऐप्लिकेशन को असली उपयोगकर्ता को सूचना दिखाने से पहले, FCM पेलोड में डिलीवर की गई इमेज को मैनेज करने की अनुमति देता है.

सूचना सेवा एक्सटेंशन सेट अप करना

सेवा एक्सटेंशन जोड़ने के लिए, एपीएन में सूचनाओं में बदलाव करने और उन्हें दिखाने के लिए, सेटअप करने से जुड़े ज़रूरी टास्क पूरे करें. इसके बाद, NotificationService.m में FCM एक्सटेंशन हेल्पर एपीआई जोड़ें. खास तौर पर, कॉलबैक को self.contentHandler(self.bestAttemptContent); के बजाय, FIRMessaging extensionHelper के साथ पूरा करें, जैसा कि यहां दिखाया गया है:

@interface NotificationService () <NSURLSessionDelegate>
@property(nonatomic) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property(nonatomic) UNMutableNotificationContent *bestAttemptContent;
@end

@implementation NotificationService

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    // Modify the notification content here as you wish
    self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]",
    self.bestAttemptContent.title];

  // Call FIRMessaging extension helper API.
  [[FIRMessaging extensionHelper] populateNotificationContent:self.bestAttemptContent
                                            withContentHandler:contentHandler];

}
...

ईमेल भेजने का अनुरोध बनाना

सूचना भेजने के अनुरोध में, ApnsConfig के ये विकल्प सेट करें:

  • fcm_options.image में इमेज का यूआरएल शामिल है
  • headers({ "mutable-content": 1})

नीचे दिए गए उदाहरण में, सूचना भेजने का अनुरोध सभी प्लैटफ़ॉर्म पर एक ही टाइटल के साथ भेजा जाता है. हालांकि, इसमें एक इमेज भी भेजी जाती है. उपयोगकर्ता के डिवाइस पर विज़ुअल इफ़ेक्ट का अनुमानित असर यहां दिया गया है:

डिसप्ले नोटिफ़िकेशन में इमेज की आसान ड्रॉइंग

Node.js

const topicName = 'industry-tech';

const message = {
  notification: {
    title: 'Sparky says hello!'
  },
  android: {
    notification: {
      imageUrl: 'https://foo.bar.pizza-monster.png'
    }
  },
  apns: {
    payload: {
      aps: {
        'mutable-content': 1
      }
    },
    fcm_options: {
      image: 'https://foo.bar.pizza-monster.png'
    }
  },
  webpush: {
    headers: {
      image: 'https://foo.bar.pizza-monster.png'
    }
  },
  topic: topicName,
};

getMessaging().send(message)
  .then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
  })
  .catch((error) => {
    console.log('Error sending message:', error);
  });

REST

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
  "message":{
     "topic":"industry-tech",
     "notification":{
       "title":"Sparky says hello!",
     },
     "android":{
       "notification":{
         "image":"https://foo.bar/pizza-monster.png"
       }
     },
     "apns":{
       "payload":{
         "aps":{
           "mutable-content":1
         }
       },
       "fcm_options": {
           "image":"https://foo.bar/pizza-monster.png"
       }
     },
     "webpush":{
       "headers":{
         "image":"https://foo.bar/pizza-monster.png"
       }
     }
   }
 }

मैसेज के मुख्य हिस्से में, प्लैटफ़ॉर्म के हिसाब से ब्लॉक में उपलब्ध कुंजियों के बारे में पूरी जानकारी पाने के लिए, एचटीटीपी v1 का रेफ़रंस दस्तावेज़ देखें.

mutable-content को दिखाए गए तरीके से सेट करने पर, यह अनुरोध भेजने की सुविधा, पेलोड में डिलीवर की गई इमेज को मैनेज करने के लिए, रिसीविंग क्लाइंट पर सेवा एक्सटेंशन को चालू करती है.