curl - Google कैलेंडर API(oauth2)'अपर्याप्त अनुमति' के साथ प्रतिक्रिया क्यों दे रहा है?




oauth-2.0 google-calendar google-oauth (6)

कैलेंडर तक पहुंचने के लिए पर्याप्त अनुमति रखने के लिए मुझे Google प्लस स्कोप शामिल करना था:

तो मेरा scope इस तरह दिख रहा है:

'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'

मैं निम्नलिखित यूआरएल ({id} के साथ वेब इंटरफ़ेस से आईडी के साथ प्रतिस्थापित करने के लिए अनुरोध प्राप्त कर रहा हूं):

https://www.googleapis.com/calendar/v3/calendars/{id}

कुछ दावे:

  1. अधिकृत हेडर को वैध पहुंच टोकन के साथ सही ढंग से सेट किया जा रहा है (टोकन Analytics API के लिए ठीक काम करता है)

  2. मैंने oauth2 के लिए निम्न स्कोप सेट किया है, जो सही तरीके से दिखाया गया है:

    https://www.googleapis.com/auth/calendar
    
  3. टोकन की समय सीमा समाप्त नहीं हुई है; यह Analytics API के लिए काम करता है।

    { "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
    

मेरे पास एक ही समस्या थी जबकि मैं अपने Google कैलेंडर में कोई ईवेंट जोड़ने की कोशिश कर रहा था। आखिरकार मैंने इसे कैसे तय किया:

  • मेरी फाइल 'credentials.json' हटाएं
  • एक पायथन कार्यक्रम लॉन्च करें जो Google के क्विकस्टार्ट प्रोग्राम की तरह दिखता है जिसमें "SCOPES = ' https://www.googleapis.com/auth/calendar ' लिखा गया है। यह कार्यक्रम एकमात्र समाधान था जो मेरे लिए काम करता था। मेरे असली काम को कॉल करने के लिए मेरे django कमांड लॉन्च करें मेरे लिए काम नहीं किया। लेकिन यह मेरी अनुमति समस्या तय की।

फिर, यह आपके ब्राउज़र को खोलता है और Google आपके कैलेंडर को प्रबंधित करने और आपके रिपर्टरी में एक नया 'credentials.json' बनाने की अनुमति मांगता है।



ठीक करने के लिए, मैंने https://accounts.google.com/IssuedAuthSubTokens पर ऐप तक पहुंच रद्द कर दी और उसके बाद पुनः प्रयास किया, मैं एपीआई को सही तरीके से एक्सेस करने में सक्षम था।

सूची में दायरा होने के बावजूद, और Google के OAuth2 अनुदान पृष्ठ पर प्रदर्शित होने वाला दायरा, अतिरिक्त दायरा नहीं दिया गया था।


मैं दायरे को दोबारा जांचना चाहता हूं - मैंने उस गलत संदेश को देखा है जब मैंने गलत दायरे का अनुरोध किया है। https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx विज़िट करने का एक अच्छा तरीका है।

मान लें कि चेक आउट हो गया है, सुनिश्चित करें कि जिस उपयोगकर्ता के पास आपके पास पहुंच टोकन है, उस कैलेंडर को देखने की अनुमति है जिसे आप एक्सेस करने का प्रयास कर रहे हैं। "गियर्स" आइकन -> "सेटिंग्स" -> "कैलेंडर" -> (कैलेंडर का चयन करें) -> "इस कैलेंडर को साझा करें"


जबकि अन्य उत्तरों ने सभी परिस्थितियों में मेरे लिए काम नहीं किया है, वहीं सबसे अच्छा समाधान जो मुझे मिल सकता है ( POST साथ काम कर रहा है), here से लिया गया here :

curl -vs 'https://some-site.com' 1> /dev/null





curl oauth-2.0 google-calendar google-oauth