2016-05-09 15 views
9

मैं अपने ओएथ 2.0 एपीआई का उपयोग करके Google के साथ प्रमाणित करने के लिए this ट्यूटोरियल का पालन करने का प्रयास कर रहा हूं। हालांकि, मैं अपने पुस्तकालयों का उपयोग करने के बजाय सीधे curl कॉल करना चाहता हूं।Google OAuth 2.0 एक्सेस टोकन सीधे कर्ल का उपयोग कैसे करें? (Google लाइब्रेरीज़ का उपयोग किए बिना)

मैंने अपना ग्राहक आईडी और क्लाइंट गुप्त कुंजी प्राप्त की है। अब मैं इस तरह पहुंच टोकन प्राप्त करने कोशिश कर रहा हूँ:

curl \ 
--request POST \ 
--header "Content-Type: application/json" \ 
--data '{ 
    "client_id":"MY_CLIENT_ID", 
    "client_secret":"MY_SECRET_KEY", 
    "redirect_uri": "http://localhost/etc", 
    "grant_type":"authorization_code" 
}' \ 
"https://accounts.google.com/o/oauth2/token" 

हालांकि, यह काम नहीं कर रहा।

{ 
    "error" : "invalid_request", 
    "error_description" : "Required parameter is missing: grant_type" 
} 

कोई मुझे कर्ल कॉल पहुँच टोकन प्राप्त करने के लिए नमूना (और टोकन ताज़ा) प्रदान करें सकते हैं: यह मुझे निम्न त्रुटि देता है?

+2

पर एक नज़र डालें: http://stackoverflow.com/a/18260206/1503886 –

उत्तर

12

ए) आपके द्वारा प्रदान किया गया डेटा JSON ऑब्जेक्ट के रूप में प्रस्तुत करने के बजाय फॉर्म-एन्कोड किया जाना चाहिए और बी) आपको "कोड" पैरामीटर में प्राधिकरण कोड मान भी प्रदान करना चाहिए। उदा .:

curl -d "client_id=MY_CLIENT_ID&\ 
    client_secret=MY_SECRET_KEY&\ 
    redirect_uri=http://localhost/etc&\ 
    grant_type=authorization_code&\ 
    code=CODE" https://accounts.google.com/o/oauth2/token 
+0

यह एक प्राप्त या एक पोस्ट है? –

+0

'-d' का उपयोग करके इसे स्वचालित रूप से एक पोस्ट में बदल जाता है और वांछित सामग्री प्रकार –

+0

सेट करता है जो मेरे लिए काम करता है, बहुत बहुत धन्यवाद! –

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