我正尝试按照本教程使用Google的OAuth 2.0 API进行身份验证。但是,我希望直接调用curl
,而不是使用它们的库。
我已经获得了我的客户ID和客户密钥。现在我正试图获得这样的访问令牌:
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"
}
有人能给我提供一个示例curl调用来获取访问令牌(和刷新令牌)吗?
a)您提供的数据应该是形式编码的,而不是以JSON对象的形式显示,b)您还应该在"code"参数中提供授权代码值。例如:
curl -d "client_id=MY_CLIENT_ID&
client_secret=MY_SECRET_KEY&
redirect_uri=http://localhost/etc&
grant_type=authorization_code&
code=CODE" https://oauth2.googleapis.com/token
虽然不直接使用CURL,但您也可以使用Google OAuth Playground获取和测试OAuth令牌:https://developers.google.com/oauthplayground/