मेरे पास एक फायरबेस फ़ंक्शन है जिसे मैं प्रेषक के इनबाउंड पार्स वेबहुक के लिए वेबहुक के रूप में उपयोग करता हूं। तो इसका मतलब है कि जब भी मेरे डोमेन पर कोई ईमेल भेजा जाता है, तो वह वेबहुक को कॉल करता है। मुझे पता है कि वेबहुक को कॉल किया जा रहा है, लेकिन मैं Sendgrid द्वारा भेजे जा रहे डेटा तक नहीं पहुंच सकता। यह लिंक बताता है कि सभी जानकारी (पाठ, प्रेषक, ect) हेडर में वहीं होनी चाहिए। हालाँकि जब मैं req.headers का प्रिंट आउट लेता हूँ तो मुझे यह मिलता है:

{ host: 'us-central1-project-name.cloudfunctions.net',
  'user-agent': 'Sendlib/1.0 server.sendgrid.net',
  'transfer-encoding': 'chunked',
  'content-type': 'multipart/form-data; boundary=xYzZY',
  forwarded: 'for="ip";proto=https',
  'function-execution-id': 'id',
  'x-appengine-city': '?',
  'x-appengine-citylatlong': '0.000000,0.000000',
  'x-appengine-country': 'US',
  'x-appengine-default-version-hostname': ~~~~~~~~~~~~~.appspot.com',
  'x-appengine-https': 'on',
  'x-appengine-region': '?',
  'x-appengine-request-log-id': 'super-long-id',
  'x-appengine-user-ip': 'ip',
  'x-cloud-trace-context': 'id/number;o=1',
  'x-forwarded-for': 'ip',
  'x-forwarded-proto': 'https',
  'accept-encoding': 'gzip',
  connection: 'close' }'

(जाहिर है मैंने सभी आईडी और सब कुछ बदल दिया है)

ईमेल जानकारी कहाँ है? मैंने निम्नलिखित सभी करने की कोशिश की है और उनमें से किसी ने भी ईमेल के बारे में कोई जानकारी नहीं दी है।

exports.reciever = functions.https.onRequest((req, res) => {
  try {
   console.log("Email recieved");
   console.log(req);
   console.log(req.headers);
   console.log(req.header.to);
   console.log(req.body);
   console.log(req.get('to'));
   console.log(req.body.to);
   console.log(req.rawBody);
   console.log(req.query);
   console.log(req.query.to);
   console.log(req.params);
   console.log(req.path);
   console.log(req.rawBody);
  } catch (e) {}
  finally {
      res.send("2xx");
  } 
})
2
A.S.H 2 जिंदा 2020, 03:15

2 जवाब

सबसे बढ़िया उत्तर

तो, यह पता चला है कि यह वास्तव में बहुत आसान है। जोड़ें

.toString()

req.body या req.rawBody ऑब्जेक्ट के अंत में।

3
Friedrick 10 अक्टूबर 2020, 14:13

मैं अंत में बसबॉय को फंक्शन-डायरेक्टरी में स्थापित करके और फिर यहां दिए गए कोड का उपयोग करके इसे काम करने में कामयाब रहा: https://stackoverflow.com /a/54026200/10372124

0
Gnopps 10 अक्टूबर 2020, 14:05