क्या Dialogflow के साथ Google पर Actions में कोई अनाम आईडी है जिसे मैं Node.js में DialogFlow का उपयोग करके एक्सेस कर सकता हूं?

मुझे यह जानने की आवश्यकता नहीं है कि कार्रवाई का उपयोग कौन कर रहा है, लेकिन मैं एक विशिष्ट पहचानकर्ता होना चाहता हूं ताकि कार्रवाई को पता चल सके कि वे कब वापस आएंगे।

0
Glen Little 23 सितंबर 2019, 17:53

3 जवाब

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

मुझे एक संभावित विकल्प मिला है ...

(Node.js में DialogFlow में काम करते समय, अधिकांश कोड एक हैंडलर में होता है और पैरामीटर को आमतौर पर conv कहा जाता है। निम्नलिखित मानता है कि यह ऐसे हैंडलर के अंदर है।)

प्रत्येक कॉल पर, सत्र डेटा और उपयोगकर्ता संग्रहण में 'मौजूदा' आईडी की जांच करें:

var id = conv.data.MyId || conv.user.storage.MyId || '';

if(!id) {
  id = /* make a new Id for this user... a GUID or some other unique id */
  conv.user.storage.MyId = id;
}

एक बार जब मैं भंडारण से आईडी प्राप्त कर लेता हूं या एक नया बना लेता हूं, तो इसे conv.data पर पुन: असाइन करना महत्वपूर्ण है, क्योंकि conv.user.storage केवल पहली कॉल पर ही विश्वसनीय रूप से प्रदान किया जाता है!

// IMPORTANT
conv.data.MyId = id;

/* use the Id as needed */

मेरा कोड उनकी अंतिम यात्रा से विवरण प्राप्त करने के लिए एक फायरबेस डेटाबेस में आईडी को देखता है।

ऐसा लगता है कि यह काम कर रहा है, लेकिन विश्वसनीय नहीं हो सकता है।

0
Glen Little 24 सितंबर 2019, 08:34

Google अब आपके लिए एक प्रदान नहीं करता है। जब कोई नया उपयोगकर्ता आपके वेबहुक के साथ इंटरैक्ट करता है और जेनरेट की गई आईडी को अपने उपयोगकर्ता स्टोरेज ऑब्जेक्ट में संग्रहीत करता है तो आपको एक उत्पन्न करना होगा।

एक नए उपयोगकर्ता की पहचान करने के लिए आप अभी जांचें कि क्या उनके पास पहले से ही उनके उपयोगकर्ता संग्रहण ऑब्जेक्ट में एक आईडी है। आईडी बनाने के लिए आप यूयूआईडी जैसी लाइब्रेरी का उपयोग कर सकते हैं। https://www.npmjs.com/package/uuid

Uuidv4 शायद वह है जिसकी आपको आवश्यकता है यदि आपको साधारण पहचान के लिए केवल एक विशिष्ट आईडी की आवश्यकता है

0
Jordi 23 सितंबर 2019, 19:49
धन्यवाद, @ जोर्डी। मैं अब सुझाव के अनुसार uuidv4 का उपयोग कर रहा हूं, हालांकि मैं '-' को हटा देता हूं और इसे फायरबेस आईडी के रूप में उपयोग करने में सक्षम होने के लिए एक पत्र तैयार करता हूं!
 – 
Glen Little
24 सितंबर 2019, 08:36

Google का मूल विचार यूजरस्टोरेज नामक एक क्षेत्र का लाभ उठाना था, लेकिन यह सुविधा एटीएम को बोर करती हुई प्रतीत होती है।

उपयोगकर्ता भंडारण दस्तावेज़ीकरण: https://developers.google.com/actions/assistant/save-data

मुद्दों के बारे में Reddit धागा: https://www.reddit.com/r/GoogleAssistantDev/comments/d88z7e /userstorage_saga_continued/

जब तक कुछ नहीं बदला है (मैंने उपयोगकर्ता स्टोरेज पर जांच नहीं की है क्योंकि मैं इसके चारों ओर एक फिक्स लिखने में व्यस्त हूं) आप खाता लिंकिंग के बिना भाग्य से बाहर हो सकते हैं। बेझिझक यूजरस्टोरेज को आजमाएं और मुझे ईमानदार रखें क्योंकि हो सकता है कि उन्होंने आंतरिक रूप से स्थिति को ठीक कर दिया हो।

वैकल्पिक रूप से, यदि आपको केवल एक वार्तालाप के लिए एक पहचानकर्ता या सत्र की आवश्यकता है, तो आप बातचीत का लाभ उठा सकते हैं जो बातचीत समाप्त होने तक अद्वितीय रहेगा।

0
mikesizz 23 सितंबर 2019, 22:52