आप निम्न पैरामीटर की वजह से बहु उपयोगकर्ता चयन स्क्रीन नहीं मिल रहा है: authuser=0
यह स्वचालित रूप से पहले खाते के साथ साइन-इन किया का चयन करता है (authuser=1
दूसरा आदि का चयन करेंगे ...)।
क्लाइंट लाइब्रेरी का उपयोग कर उस पैरा को हटाने के लिए वर्तमान में संभव नहीं है क्योंकि क्लाइंट लाइब्रेरी स्वचालित रूप से 0 पर सेट हो जाती है (यही कारण है कि यह बहु-खातों को संभालने का दावा नहीं करता है) यदि कोई मूल्य नहीं है तो एक तरीका इसे ओवरराइड करना है उदाहरण के लिए -1, यह बहु-खाता चयनकर्ता दिखाएगा। फिर आप user's profile or email तक पहुंचने के लिए भी पूछ सकते हैं, साथ ही आप अन्य एपीआई तक पहुंच मांगने और उपयोगकर्ता या उसके आईडी का ईमेल प्राप्त करने के लिए भी पूछ सकते हैं। फिर बाद के लेख पर आप user_id
परम निर्दिष्ट कर सकते हैं जो उपयोगकर्ता-चयन स्क्रीन को बाईपास करेगा।
तो व्यवहार में, पहले इस तरह प्रमाणीकरण करें:
gapi.auth.authorize({client_id: <Your Client ID>,
scope: 'https://www.googleapis.com/auth/drive openid', // That requires access to Google Drive and to the UserInfo API
authuser: -1});
ऊपर के साथ ही समस्या यह है कि क्लाइंट लाइब्रेरी का स्वत: रीफ्रेश काम नहीं करेगा क्योंकि हर प्रमाणन बहु खाते पर अवरुद्ध द्वारा जाएगा चयन स्क्रीन।
gapi.auth.authorize({client_id: <Your Client ID>,
scope: 'https://www.googleapis.com/auth/drive openid',
user_id: <The User ID>,
authuser: -1});
उपयोगकर्ता की आईडी निर्दिष्ट करना सुनिश्चित करेंगे:
चाल, UserInfo एपीआई का उपयोग कर उपयोगकर्ता की आईडी प्राप्त एक सत्र कुकी में वह आईडी सहेजेंगे और इस तरह बाद में प्रमाणन पर इसका इस्तेमाल करने के लिए है बहु-खाता चयनकर्ता बाईपास है और क्लाइंट lib से टोकन के ऑटो-रीफ्रेश को फिर से काम करने की अनुमति देगा।
संदर्भ, अन्य URL परम कि उपयोगकर्ता प्रवाह को प्रभावित करने के लिए कर रहे हैं:
user_id
: authuser
से समान (नजरअंदाज बहु खाता चयन स्क्रीन), लेकिन आप ईमेल पते का उपयोग कर सकते हैं (उदाहरण के लिए [email protected]) या आप उपयोगकर्ता आईडी से हमारे ओपन आईडी कनेक्ट endpoint/गूगल + एपीआई/UserInfo एपीआई
approval_prompt
से मिलता है: डिफ़ॉल्ट, auto
है force
करने के लिए सेट किया जा सकता है यकीन है कि अनुमोदन/अनुदान स्क्रीन दिखाया जाता है कि बनाने के लिए। यह सुनिश्चित करता है कि गैंट स्क्रीन को बाद के लेख (पहली बार के बाद) पर नहीं छोड़ा जाता है।
immediate
: immediate
थोड़ा मुश्किल है, जब true
करने के लिए सेट यह अनुदान स्क्रीन (approval_prompt=auto
की तरह थोड़े) ही उपयोगकर्ता पहले से पहले स्वीकृति प्रदान की बायपास करेंगे, लेकिन अगर उपयोगकर्ता स्वीकृति प्रदान नहीं की गई है कि पहले आप एक त्रुटि के साथ पुनः निर्देशित किया जाएगा : error=immediate_failed
। यदि false
पर सेट किया गया है तो यह approval_prompt
मान द्वारा व्यवहार सेटअप पर विशेष व्यवहार नहीं करेगा।
नोट: immediate=true
और approval_prompt=force
एक अवैध संयोजन है।
मुझे लगता है कि क्लाइंट लाइब्रेरी immediate
परम उपयोग कर रहा है ताकि अगर वह error=immediate_failed
हो जाता है यह authuser
परम बिना एक प्रमाणन प्रवाह को पुनः आरंभ करेगा, लेकिन वह केवल अटकलों :) है
जबकि, आपने तकनीकी रूप से सवाल का जवाब दिया है "मैं ड्राइव के लिए जेएस क्लाइंट लाइब्रेरी का उपयोग करते समय किस Google खाते का उपयोग करना चाहता हूं?", मेरा प्रश्न वास्तव में गलत शीर्षक था, क्षमा करें :)। – David
मैंने अभी इसका उत्तर दिया क्योंकि मैं बेहतर जानता हूं कि हमारे ओथ एंड जेपी क्लाइंट लाइब्रेरी की तुलना में एंडपॉइंट्स कैसे काम करते हैं: डी मुझे अनजान था कि यह बहु-उपयोगकर्ता खातों के साथ काम नहीं करता है:/ – Nivco
आपको यह पैरामीटर कहां मिला? इसे https://developers.google.com/+/web/api/javascript – chulian