ग्रेट सवाल।
संक्षिप्त उत्तर: आपको अपने तीसरे पक्ष के उपयोगकर्ता और एलेक्सा उपयोगकर्ता आईडी के बीच अपनी खुद की जोड़ी बनाना होगा। एलेक्सा कौशल एसडीके में कोई अंतर्निहित समर्थन नहीं है जो आपको अपने उपयोगकर्ता आईडी के साथ एक Alexa उपयोगकर्ता आईडी को संबद्ध करने देता है। आपको एक विशिष्ट आवाज इरादा बनाना होगा जो एलेक्सा उपयोगकर्ता आईडी को आपके उपयोगकर्ता डीबी से जोड़ता है।
लंबा उत्तर: आइए प्रत्येक अनुरोध में आपको उस एलेक्सा उपयोगकर्ता आईडी के बारे में बात करके शुरू करें। आपको प्राप्त एलेक्सा उपयोगकर्ता आईडी एक एलडब्ल्यूए (लॉग इन-अमेज़ोन) उपयोगकर्ता आईडी है। एलेक्सा कौशल को भरोसेमंद उपयोगकर्ताओं को विश्वसनीय रूप से पहचानने की अनुमति देना प्राथमिक उद्देश्य है।
तो क्या काम नहीं करता है? जिस समस्या को आप चलाने जा रहे हैं वह यह है कि एलडब्ल्यूए उपयोगकर्ता आईडी हमेशा प्रत्येक एलेक्सा ऐप के लिए अनामित है। यह महत्वपूर्ण है क्योंकि यह सुनिश्चित करता है कि उपयोगकर्ताओं को ट्रैक नहीं किया जाता है; लेकिन यह आपको एलेक्सा उपयोगकर्ता आईडी को अपने स्वयं के LWA userID से संबद्ध करने से रोकता है।
"Login with Amazon - Developer Guide" से (पेज 10)
हर कंपनी है कि एक ग्राहक के लिए हो जाता है ही user_id अमेज़न के साथ लॉग इन करने के लिए वेबसाइटों या ऐप्लिकेशन पैदा करता है। हालांकि, जब कोई ग्राहक में किसी अन्य कंपनी के ऐप या साइट पर लॉग इन करता है, तो उपयोगकर्ता_आईडी अलग-अलग होगा। यह है इसलिए उपयोगकर्ता_आईडी का उपयोग वेब पर ग्राहकों को ट्रैक करने के लिए नहीं किया जा सकता है।
मैं क्या कह रहा हूँ कि आप बस iOS, Android या वेब क्षुधा में LWA लागू नहीं कर सकते और एक खाते के रूप में आप एक एलेक्सा userID के रूप में मिलेगा के लिए एक ही LWA userId प्राप्त करने की उम्मीद है। उदाहरण के लिए, यदि आप implemented LWA on your Android app एक था [email protected] उनके अमेज़न करने के लिए उपयोगकर्ता लॉगिन खाते से आप amzn1.account.123456 उपयोगकर्ता ID के रूप में मिल सकता है, लेकिन जब करने के लिए है कि एक ही [email protected] उपयोगकर्ता वार्ता उनके युग्मित इको आपको amzn1.account.98765 या कोई अन्य पूरी तरह से अलग उपयोगकर्ता आईडी प्राप्त होगा। मैं वास्तव में इस वास्तुकला के निर्माण के दो दिन बर्बाद कर दिया, जो मुझे पता है कि यह काम नहीं करता है।
तो काम क्या करता है? पिन प्रमाणीकरण की आवाज-केंद्रित भिन्नता सबसे अच्छी लगती है।
चलिए एक ही समस्या के साथ ऐप्स की एक और जगह देखें: टीवी ऐप्स (एक्सबॉक्स, एंड्रॉइड टीवी, आदि)। सामग्री में पहुंच प्राप्त करने के लिए उन बहुत से ऐप्स को लॉगिन करने की आवश्यकता होती है (उदा। हूलू, नेटफ्लिक्स, आदि)। लेकिन उपयोगकर्ता नाम और पासवर्ड दर्ज करने के लिए रिमोट कंट्रोल का उपयोग करना सिर्फ सादा पुराना खराब यूएक्स है। तो हमने टीवी ऐप के लिए क्या किया? उपयोगकर्ता myService.com/tv पर जाते हैं, अपने खाते में लॉगिन करते हैं और एक विशेष लघु, संख्यात्मक और समय-संवेदनशील पिन कोड प्राप्त करते हैं जो वे अपने टीवी में इनपुट कर सकते हैं।
जब मैं एक एलेक्सा कौशल लागू कर रहा था तो हमने एक समान दृष्टिकोण लेने का फैसला किया। उपयोगकर्ता हमारी वेबसाइट, आईओएस ऐप या एंड्रॉइड ऐप में लॉग इन करेंगे, एक समर्पित इको पेज पर जाएं और फिर पिन कोड प्राप्त करें। ऑन-स्क्रीन निर्देशों जो कुछ इस तरह लिखा होगा: अपने इको को
जाओ और कहते हैं:
'लॉन्च foo'
'मेरा पिन एक दो तीन चार है'
हमारे foo कौशल में हम एक PairingIntent इरादे को सुनने के लिए है "मेरी पिन है {एक दो तीन चार | पिनकोड} "नमूना उच्चारण। एक PairingIntent प्राप्त करने के बाद हम जांच करेंगे कि क्या पिन कोड मान्य था और यदि ऐसा है तो हमारे उपयोगकर्ता डीबी के साथ एलेक्सा उपयोगकर्ता आईडी। यदि पिन मान्य था तो इको कुछ कहेंगे "ओह, हाय वहाँ बॉब! अब आपके पास अपनी सभी भयानक सामग्री तक पहुंच है।"। यदि पिन कोड वैध एलेक्सिया नहीं था, तो उपयोगकर्ताओं को फिर से प्रयास करने के लिए संकेत मिलेगा।
उम्मीद है कि यह समझ में आता है। एलेक्सा कौशल के साथ तीसरे पक्ष के खातों को जोड़ने के लिए अन्य विकल्प हैं लेकिन यह आवाज-पिन दृष्टिकोण सबसे सरल है।
सर्वोत्तम उत्तर कभी भी – Zigglzworth
सही उत्तर देता है, और एक बाहरी सेवा के साथ जोड़े को एक Alexa कौशल बनाने में अंतर्दृष्टि के लिए धन्यवाद। – JamesQMurphy
उत्तर हटाने के लिए कोई कारण? –