Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用curl直接获取GoogleOAuth2.0访问令牌?(不使用谷歌图书馆)_Curl_Oauth 2.0_Google Api_Google Oauth - Fatal编程技术网

如何使用curl直接获取GoogleOAuth2.0访问令牌?(不使用谷歌图书馆)

如何使用curl直接获取GoogleOAuth2.0访问令牌?(不使用谷歌图书馆),curl,oauth-2.0,google-api,google-oauth,Curl,Oauth 2.0,Google Api,Google Oauth,我正试图按照教程使用他们的OAuth2.0API与Google进行身份验证。但是,我想直接调用curl而不是使用它们的库 我已获得我的客户ID和客户密钥。 现在,我尝试获取如下访问令牌: curl \ --request POST \ --header "Content-Type: application/json" \ --data '{ "client_id":"MY_CLIENT_ID", "client_secret":"MY_SECRET_KEY", "redirect_u

我正试图按照教程使用他们的OAuth2.0API与Google进行身份验证。但是,我想直接调用
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游乐场获取和测试OAuth令牌:

看看:这是get还是post?使用
-d
自动将其转换为post并设置所需的内容类型此技术是否可以扩展到包含两条腿的OAuth2?代码参数来自原始的身份验证请求: