2015-10-23 17 views
11

मैं ऐप स्क्रिप्ट Execution API के माध्यम से Google शीट तक पहुंचने के लिए service account का उपयोग करना चाहता हूं, लेकिन यह दस्तावेज़ीकरण से स्पष्ट नहीं है कि यह समर्थित है या नहीं।क्या Google Apps स्क्रिप्ट निष्पादन API को किसी सेवा खाते द्वारा बुलाया जा सकता है?

चरणों मैं कोशिश की है (जो निष्पादन API से एक 403 स्थिति में परिणाम)

हैं:

  1. एक नया (अनबाउंड) बनाएं Apps स्क्रिप्ट का
  2. जाएँ जुड़ा हुआ डेवलपर कंसोल प्रोजेक्ट
  3. एक्जिक्यूशन एपीआई
  4. उसी प्रोजेक्ट के भीतर एक नया सेवा खाता बनाएं ( जेनरेट जेएसओएन फ़ाइल डाउनलोड करना)
  5. एक नई Google शीट बनाएं और इसे सेर के साथ साझा करें उपाध्यक्ष खाते के ईमेल पता
  6. एक क्षुधा स्क्रिप्ट समारोह है कि स्प्रेडशीट
  7. भागो स्क्रिप्ट संपादक से स्क्रिप्ट मैन्युअल रूप से (स्कोप पर स्थापित करने के लिए से पढ़ता लिखें (इस कदम मैं कम से कम कर रहा हूँ यकीन है कि के बारे में है) स्क्रिप्ट सही ढंग से)
  8. ("API निष्पादन के रूप में परिनियोजित" स्क्रिप्ट (प्रकाशित), सुलभ 'किसी को भी'
  9. टकसाल नया OAuth2 सेवा खाते का उपयोग टोकन और स्कोप स्क्रिप्ट से जुड़ा हुआ करने के लिए इसे बनाने में हमारी मामला बस 'https://www.googleapis.com/auth/spreadsheets') का उपयोग करने के लिए निष्पादन API कॉल करने के लिए
  10. प्रयास टोकन

यह प्रतिक्रिया मुझे मिल गया है:

{ 
    "error": { 
    "code": 403, 
    "message": "The caller does not have permission", 
    "status": "PERMISSION_DENIED" 
    } 
} 

इस वजह सेवा खाते निष्पादन उपयोग करने में सक्षम नहीं हैं काम नहीं करता एपीआई? या ऊपर दिए गए चरणों में कुछ गड़बड़ है?

+0

आप मुझे अपने टोकन –

+0

पर Google स्क्रिप्ट निष्पादन एपीआई स्कोप खो सकते हैं धन्यवाद - मैंने ऐसा दायरा ढूंढने की कोशिश की, लेकिन मैं नहीं कर सका। [Google एपीआई के लिए ओएथ 2.0 स्कोप्स] की सूची में केवल एक ही (https://developers.google।कॉम/पहचान/प्रोटोकॉल/googlescopes # scriptv1) एक्जिक्यूशन एपीआई के बजाए एक्जिक्यूशन एपीआई के माध्यम से सेवाओं तक पहुंचने के लिए हैं। मैंने यह भी देखा कि दस्तावेज़ कहते हैं, "एप्लिकेशन कोड में, एपीआई कॉल के लिए ओएथ एक्सेस टोकन जेनरेट करें। यह एक टोकन नहीं है जो एपीआई स्वयं ही उपयोग करता है, बल्कि एक स्क्रिप्ट की आवश्यकता होती है।" - मैंने यह (संभवतः गलत तरीके से) का अर्थ यह है कि पहचान का दावा स्क्रिप्ट उपभोग करने वाली सेवाओं के लिए है। –

+0

क्या उत्तर ने आपकी समस्या को ठीक किया? _Can_ आप सेवा खाते के साथ निष्पादन API का उपयोग करते हैं? –

उत्तर

2

आपकी समस्या शायद यह है कि स्क्रिप्ट गलत प्रोजेक्ट से जुड़ा हुआ है (यानी अपने स्वयं के प्रोजेक्ट से जुड़े प्रोजेक्ट की बजाय अपनी परियोजना)। यहां आपको यह करने की आवश्यकता है:

स्क्रिप्ट संपादक से निम्न मेनू आइटम का चयन करें: संसाधन> डेवलपर कंसोल प्रोजेक्ट

इस स्क्रीन पर अपने dev console के लिए प्रोजेक्ट नंबर दर्ज करें।

सीएफ this answer

+0

धन्यवाद। मुझे डर है कि यह नहीं है, हालांकि - मैं जिस डेवलपर कंसोल प्रोजेक्ट का उपयोग कर रहा हूं वह स्वचालित रूप से ऐप स्क्रिप्ट के साथ बनाया गया है, और सेवा खाता उसी प्रोजेक्ट से जुड़ा हुआ है। –

+0

उस स्थिति में, मैं डेवलपर कंसोल से एक नई प्रोजेक्ट बनाने की सिफारिश करता हूं, प्रासंगिक एपीआई (शायद सिर्फ Google Apps स्क्रिप्ट निष्पादन API और Google ड्राइव API) को सक्षम करता हूं, उस प्रोजेक्ट के तहत एक नया सेवा खाता उत्पन्न करता है, और आपकी स्क्रिप्ट को स्थानांतरित करता है (या इसकी एक प्रति) उस परियोजना के लिए। – BarthesSimpson

+0

इसके अलावा, क्या आप स्क्रिप्ट को कॉल करने के लिए "API निष्पादन योग्य के रूप में तैनात" संवाद में प्रदान की गई API आईडी का उपयोग कर रहे हैं? आपको शीट की आईडी के बजाय इसका उपयोग करना होगा। – BarthesSimpson

9

आपका मूल 403 त्रुटि इंगित करता है कि यदि आपने अपनी सेवा खाते के लिए प्रमाणीकरण की स्थापना की है। हालांकि, अगर आप इसे काम करते हैं, तो अभी भी (10 नवंबर 2015) आप सेवा खाते के माध्यम से ऐप्स स्क्रिप्ट निष्पादित नहीं कर सकते हैं।

यह ज्ञात बग है, और ऐप्स स्क्रिप्ट Issue Tracker में ट्रैक किया जा रहा है।

+1

दुर्भाग्यवश यह सही उत्तर है। इस जवाब को यहां ढूंढने में मुझे लगभग 3 दिन बेवकूफ परीक्षण हुए। आखिरकार मुझे सही रास्ते पर लाने के लिए धन्यवाद @ पार्टी आर्क। – Jpsy

+0

@ जेपीएस क्यूरियस अगर आपने कभी 400 त्रुटि प्राप्त करने में कामयाब रहा है जो ट्रैक किए गए मुद्दे का वर्णन करता है? मुझे भी इस समस्या का सामना करना पड़ रहा है, लेकिन 403 प्राप्त करना जारी है और मुझे यकीन है कि मेरे पास प्रमाणीकरण सही है। – Daniel

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