2017-04-26 16 views
6

मैं Google ड्राइव API तक पहुंच प्राप्त करने का प्रयास कर रहा हूं और मैंने documentation पढ़ा है। मेरा आईओएस ऐप https://accounts.google.com/o/oauth2/v2/auth को समाप्त करने की अनुमति मांगने के लिए पहला अनुरोध भेजता है।Google पहचान प्लेटफ़ॉर्म: रीफ्रेश और एक्सेस टोकन के लिए प्राधिकरण कोड का आदान-प्रदान नहीं कर सकता

उपयोगकर्ता अनुदान अनुमति देता है। मुझे एक कोड मिलता है। अगला चरण ताज़ा करने और टोकन तक पहुंचने के लिए प्राधिकरण कोड है।

स्थापित ऐप्स के लिए, मुझे ग्राहक रहस्य भेजने की आवश्यकता नहीं है। आदेश iOS एप्लिकेशन एंडपॉइंट में पोस्ट अनुरोध भेजता है ऐसा करने के लिए:

https://www.googleapis.com/oauth2/v4/token 
हेडर के साथ

:

Content-Type : application/x-www-form-urlencoded 

शरीर:

{ 
    "error": "unsupported_grant_type", 
    "error_description": "Invalid grant_type: " 
} 
:

code={CODE_FROM_OAUTH_SERVER}&client_id={CLIENT_ID_FROM_CONSOLE}&redirect_uri={APP_BUNDLE_IDENTIFIER}:/code&grant_type=authorization_code 

मैं प्रतिक्रिया मिल

ए पीपी Google कंसोल में पंजीकृत है।

मेरा सवाल है क्या मैं कुछ गलत कर रहा हूं?

+0

डेवलपर कंसोल पर आपने किस प्रकार के प्रमाण-पत्र बनाए हैं? – DaImTo

+0

@DaImTo, मेरे ऐप्स में स्थापित ऐप्स के लिए प्रमाण-पत्र - क्लाइंट आईडी बनाएं -> आईओएस –

+0

और आपने https://openid.github.io/AppAuth-iOS/ का पालन किया? – DaImTo

उत्तर

3

यह POST HTTP सर्वर के अनुरोध के लिए निर्दिष्ट डेटा भेज रहा है, जैसे ब्राउज़र जब हम HTML फॉर्म भरते हैं और सबमिट करते हैं तो ब्राउज़र करते हैं। यह सामग्री-प्रकार application/x-www-form-urlencoded का उपयोग कर सर्वर को डेटा पास कर देगा।

आप जिस तरह से आप client_id तरह OAuth पैरामीटर भेजने बदलकर प्रयास करना चाहिए,, redirect_uri, grant_type, आदि

या डिफ़ॉल्ट प्रकार के मूल निवासी ग्राहक बनाने की कोशिश करनी चाहिए।

+1

I विभिन्न तरीकों की कोशिश की और यह काम नहीं किया, शायद आपके पास ठोस सुझाव हैं? अग्रिम में धन्यवाद। –

0

पार्सिंग त्रुटियों का एक संभावित स्रोत redirect_uri है। यह यूआरएल-एन्कोडेड होना चाहिए।

+1

हां, मैंने यूआरएल एन्कोडिंग जोड़ा है, इससे मदद नहीं मिली –

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

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