Google API सेवा खाता प्राधिकरण त्रुटि




google-api google-api-php-client (2)

मैं नहीं जानता कि आपकी त्रुटि समय-समय पर क्यों होती है लेकिन मेरी समझ यह है कि किसी उपयोगकर्ता का प्रतिरूपण करने के लिए, आपको सेवा खाता पहुंच प्रदान करना होगा।

मैं एक सेवा खाता का उपयोग करके Google डिस्क से कनेक्ट करने के लिए google-api-php- ग्राहक क्लाइंट का उपयोग कर रहा हूं ज्यादातर समय यह काम करता है, लेकिन हर बार (यदि मैं यहां हर 5 से 10 वें समय पर एक पृष्ठ को और फिर से ताज़ा करता हूं), तो मुझे Google_Service_Exception को संदेश unauthorized_client: Client is unauthorized to retrieve access tokens using this method त्रुटि तब होती है जब $this->drive_service->files->listFiles() कोड मौजूद है। अगर मैं किसी अन्य उपयोगकर्ता का प्रतिरूपण करने के लिए setSubject() का उपयोग करने के बजाय सेवा खाता सीधे उपयोग करता हूं, तो ऐसा नहीं होता है।

        $this->client = new Google_Client();
        $this->client->useApplicationDefaultCredentials();
        $this->client->addScope("https://www.googleapis.com/auth/drive");
        $this->client->setSubject('xxxx');
        $this->drive_service = new Google_Service_Drive($this->client);
        $files = $this->drive_service->files->listFiles();

कोई विचार?

21 फरवरी, 2017 को अपडेट करें: त्रुटि अब आंतरायिक नहीं है, यह हर बार होता है, इसलिए मैं किसी सेवा खाते के माध्यम से किसी नियमित खाते में अब और नहीं जुड़ सकता।

10 मार्च, 2017 को अपडेट करें: ऐसा लगता है कि यह एक उपयोगकर्ता गलतफहमी है। उस डोमेन के उपयोगकर्ताओं का प्रतिरूपण करने के लिए सेवा खाता "डोमेन-वाइड प्राधिकरण" दिया जाना चाहिए - मैंने कुछ नहीं किया है मैं यहाँ बस वर्णित वर्णों के अनुसार उपयोगकर्ता खाते को एक्सेस करने के लिए एक क्लाइंट को अधिकृत किया था


जब मैं प्रतिरूपित किया गया खाता नव निर्मित होता है, तो मैं इस त्रुटि को अखंडता से देखता हूं। इसे दिखने से, सेवा बनाने की कोशिश करने से पहले 10 सेकंड की देरी जोड़ना समस्या को समाप्त करता है





service-accounts