如何使用curl直接获得Google OAuth 2.0访问令牌?(不使用谷歌图书馆)



我正尝试按照本教程使用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/

相关内容

  • 没有找到相关文章

最新更新