2017-02-22 12 views
9

मेरे पास सैकड़ों कार्यपुस्तिकाओं के साथ एक Google ड्राइव फ़ोल्डर है। मैं सूची के माध्यम से चक्र और डेटा अद्यतन करना चाहता हूँ। किसी कारण से, जीस्प्रेड केवल कुछ कार्यपुस्तिकाएं खोल सकता है लेकिन दूसरों को नहीं। मुझे हाल ही में यह समस्या थी।कुछ कार्यपुस्तिकाओं पर "स्प्रेडशीट नॉटफाउंड"

यह एक एक्सेस समस्या नहीं है क्योंकि सबकुछ एक ही फ़ोल्डर में है।

मुझे raise SpreadsheetNotFound मिलता है जब मैं open_by_key(key)। लेकिन फिर जब मैं कुंजी लेता हूं और उसे एक यूआरएल में पेस्ट करता हूं, तो शीट खुलती है। जिसका मतलब है कि यह कुंजी नहीं है।

यहां क्या हो रहा है? मुझे आश्चर्य है कि अन्य लोग इस त्रुटि का सामना नहीं कर रहे हैं।

क्या मैंने Google शीट की संख्या पर अपनी सीमा को मारा है? मेरे पास लगभग 2 हजार हैं।

अपडेट: मुझे लगता है कि अगर मैं कार्यपुस्तिका में जाता हूं और चारों ओर पोक करता हूं, तो शीट को तब पहचाना जाता है ?? इसका क्या मतलब है? यदि शीट हाल ही में सक्रिय नहीं है तो यह शीट को नहीं पहचानता ???

अगर मैं Google App Script SpreadsheetApp.openById का उपयोग करने का प्रयास करता हूं, तो कुंजी पहचानी जाती है! तो शीट वहां है, मैं इसे gspread के साथ नहीं खोल सकता। मैंने gspread द्वारा पहचाने जाने से पहले शीट में कुछ लिखने के लिए Google स्क्रिप्ट का उपयोग किया है।

मैं pygsheets का उपयोग करके शीट खोलने में सक्षम हूं लेकिन चूंकि यह नया और बहुत छोटी है, इसलिए मैं इसका उपयोग नहीं कर सकता। यह APIv4 समस्या जैसा दिखता है? कुछ चादरें APIv3 के साथ खोला नहीं जा सकता है?

अपडेट: यहां एक और अवलोकन है। एक बार जब आप APIv4 के साथ कार्यपुस्तिका खोलें, तो आप इसे V3 के साथ नहीं खोल सकते हैं।

+0

शायद फ़ोल्डर में व्यक्तिगत कार्यपुस्तिकाएं Google सेवा खाता क्लाइंट के साथ साझा नहीं की जाती हैं? –

+0

@ हल्लीमूर अली। क्लाइंट – jason

+0

के साथ पूरा फ़ोल्डर साझा नहीं किया गया है बस एक विचार: क्या आपने 'open_by_key' के बजाय 'open_by_url'' की कोशिश की है? –

उत्तर

2

मेरा अनुमान है कि आप "प्रति उपयोगकर्ता 100 सेकंड प्रति प्रश्नों", जो 1000 है और एक उच्च मूल्य के लिए बदला नहीं जा सकता की Google Drive API सीमा तक पहुंच गए किया जा सकता है।

समाधान 1:

आपको अपने लिए परियोजना पृष्ठ जाकर एक उच्च कोटा के लिए आवेदन करने की कोशिश कर सकते हैं:
1 - डैशबोर्ड
2 - कोटा
3 - क्लिक करें पेंसिल पर "प्रति उपयोगकर्ता प्रति 100 सेकंड क्वेरीज़"
4 - https://support.google.com/code/contact/drive_quota पर खत्म-आप करेंगे, लेकिन यदि आप ऊपर दिए गए चरण का पालन करें, प्रपत्र project और user विवरण पहले से ही भरा होगा - तो फिर क्लिक करें
5 "उच्च कोटा लिए आवेदन करें"।json कुंजी फ़ाइल खोलना (projectname-ca997255dada.json -

1:


समाधान 2:

मैं अपने खाते में स्प्रैडशीट केवल कुछ के साथ एक ही मुद्दा था, इस समस्या से हल किया गया था)
2 - client_email का मूल्य, यानी खोजें:

"client_email": "[email protected]", 

3 - कि ईमेल

नोट के साथ अपने शीट (रों) साझा करें: आप सिर्फ एक स्प्रेडशीट को बदलने की कोशिश कर सकते हैं कि आप खोल नहीं सकते और अगर इसके बाद के संस्करण समस्या का समाधान की जाँच करें।

+0

मुझे नहीं लगता कि यह सही है, क्योंकि मैं सुबह में पहली चीज़ उठता हूं और केवल एक शीट खोलने के लिए एक साधारण कोड चलाने की कोशिश करता हूं। मूल रूप से दिन का पहला अनुरोध ... और वह अभी भी काम नहीं करता है। – jason

+0

क्या आपने फायरवाल या एवी हस्तक्षेप माना है? –

+0

हाँ, यह मुद्दा नहीं है। – jason

1

मैंने बार-बार इस मुद्दे को चलाया है। मुझे मिला एकमात्र लगातार फिक्स एपीआई उपयोगकर्ता के साथ फ़ाइल को "पुनः साझा" करना है। यह पहले ही एपीआई उपयोगकर्ता को साझा के रूप में सूचीबद्ध करता है (चूंकि यह एक ही साझा फ़ोल्डर में बाकी सब कुछ है), लेकिन "पुनः साझा करने" के बाद मैं gspread को कोई समस्या नहीं जोड़ सकता।

इस पर आधारित मेरा मानना ​​है कि यह वास्तव में एक अनुमति समस्या हो सकती है (Google API API के माध्यम से इसे एक्सेस करते समय API उपयोगकर्ता के लिए सही अनुमति पंजीकृत करने में विफल रहा है)।

2

ऐसा लगता है कि आप gspread में एक सीमा को मार रहे हैं।

भले ही आप कुंजी द्वारा स्प्रेडशीट खोलें, gspread अभी भी https://spreadsheets.google.com/feeds/spreadsheets/private/full का उपयोग करके सभी स्पष्ट रूप से साझा चादरों की एक फ़ीड डाउनलोड करता है और यह जांचता है कि आपके द्वारा प्रदान की गई कुंजी उनमें से है या नहीं।

समस्या यह है कि यह फ़ीड केवल 500 फाइलों को सूचीबद्ध करता है। यदि आपकी कुंजी इन 500 में से नहीं है, तो आपको स्प्रेडशीट पहुंच योग्य होने पर भी SpreadsheetNotFound मिल जाएगा।

मुझे लगता है कि फ़ीड का हाल ही में उपयोग किया जाने वाला आदेश दिया गया है, जो बताता है कि इसे संपादित करने से यह gspread पर फिर से दिखाई देता है।

प्रासंगिक समस्या here है।

संबंधित मुद्दे