2016-05-09 20 views
9

Próbuję wykonać samouczek this, aby uwierzytelnić się w Google przy użyciu ich interfejsu API OAuth 2.0. Jednak chciałbym wykonywać proste wywołania curl zamiast używać ich bibliotek.Jak zdobyć token dostępu Google OAuth 2.0 bezpośrednio za pomocą curl? (bez korzystania z Bibliotek Google)

Otrzymałem mój identyfikator klienta i tajny klucz klienta. Teraz próbuję uzyskać token dostępu tak:

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" 

Jednak to nie działa. To daje mi następujący błąd:

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

Czy ktoś może podać mi przykładowe zawinięcie, aby uzyskać token dostępu (i odświeżyć token)?

+2

Spójrz: http://stackoverflow.com/a/18260206/1503886 –

Odpowiedz

12

a) dane, które podajesz, powinny być zakodowane w formie zamiast prezentowane jako obiekt JSON oraz b) należy również podać wartość kodu autoryzacji w parametrze "code". Np .:

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

Czy to get lub post? –

+0

Użycie '-d' automatycznie przełącza go na POST i ustawia żądany typ zawartości. –

+0

To zadziałało dla mnie, dziękuję bardzo! –

Powiązane problemy