2015-06-21 11 views
16

जीमेल एपीआई का उपयोग करना। मेरी क्लाइंट गुप्त फ़ाइल डाउनलोड और रूबी के लिए काम कर रही है। जब मैं quickstart.py (अजगर) संस्करण की कोशिश मैं यह त्रुटिGoogle API Quickstart.py त्रुटि KeyError: '_module'

File "quickstart.py", line 70, in <module> 
    main() 
    File "quickstart.py", line 55, in main 
    credentials = get_credentials() 
    File "quickstart.py", line 38, in get_credentials 
    credentials = store.get() 
    File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 374, in get 
    return self.locked_get() 
    File "/Library/Python/2.7/site-packages/oauth2client/file.py", line 79, in locked_get 
    credentials = Credentials.new_from_json(content) 
    File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 281, in new_from_json 
    module = data['_module'] 
KeyError: '_module' 

मैं फ़ाइल बिल्कुल नहीं बदला है मिलता है, सिर्फ इतना है कि कार्यशील निर्देशिका को client_secret.json जोड़ा गया है और यह भी गूगल-api-अजगर स्थापित -client। मेरा पायथन कोड यहां से आया: https://developers.google.com/gmail/api/quickstart/python

+0

कोई समाधान जो आपके लिए काम करता है? – rkatkam

उत्तर

5

oauth2client एक गलत संरचना के साथ एक जेसन फ़ाइल से प्रमाण पत्र लोड करने का प्रयास कर रहा है।

शायद रूबी क्लाइंट एक अलग फ़ाइल प्रारूप का उपयोग करता है लेकिन मुझे आश्चर्य होगा। क्या आप वाकई client_secret.json को ~/.credentials/gmail-quickstart.json से गलती से सहेज नहीं पाए?

भले ही ~/.credentials/gmail-quickstart.json हटाएं और पुन: प्रमाणीकरण सही संरचना के साथ एक नई प्रमाण-पत्र फ़ाइल उत्पन्न करेगा।

+0

सहायक स्पष्टीकरण ... +1 –

1

मैं खुद पाइथन सीख रहा हूं और इसी तरह की समस्या थी, लेकिन Calendar API example के साथ। यह पता चला कि यह SCOPE के संबंध में एक टाइपो था।

## Typo - Invalid definition 
SCOPES = 'https://ww.googleapies.com/auth/calendar.readonly' 
## Correct Value for SCOPE 
SCOPES = 'https://www.googleapis.com/auth/calendar' 

इसके अलावा, मैट का उत्तर मुझे सही दिशा में इंगित करने में मदद करता है। Gmail-quickstart.json क्लाइंट_secret.json जैसा ही नहीं है। Client_secret.json आपको OAuth2 टोकन के लिए अनुरोध करने की अनुमति देता है। जबकि gmail-quickstart.json में जारी टोकन और मेटा-डेटा शामिल है। Gmail-quickstart.json तब तक नहीं बनाया गया जब तक आप सफलतापूर्वक लॉगिन नहीं करते।

एक आखिरी विचार, सफलतापूर्वक लॉग इन करने के लिए, quickstart.py ऐप ने मेरे वेब ब्राउज़र (फ़ायरफ़ॉक्स) का एक उदाहरण लॉन्च किया और Google लॉगिन स्क्रीन पर गया। फ़ायरफ़ॉक्स को ठीक से चलाने के लिए, मुझे पहले अपना DISPLAY चर सेट करना था।

$ export DISPLAY=:0 
$ xhost + 
access control disabled, clients can connect from any host 
1

मैं py फ़ाइल के रूप में एक ही निर्देशिका है कि, मेरा डेस्कटॉप पर था, जबकि मैं दस्तावेज़ json बचा लिया यह (quickstart.py) को पढ़ने के लिए कोशिश कर रहा है के लिए client_secret.json ले जाकर इस हल किया। मैंने जेसन को डेस्कटॉप और लड़के को भी बचाया, यह उड़ गया!

मुझे नहीं पता कि यह अलग-अलग निर्देशिकाओं में क्यों काम नहीं करता है, कस्टम क्रेडेंशियल_पथ को परिभाषित करने में मदद नहीं करता है।

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