我试图获取我的用户的电子邮件与谷歌api &curl,我被困在兑换访问令牌。我得到键没问题,但说到令牌,谷歌只返回json
{"error" : "invalid_request"}
下面的是一个代码片段,它将代码兑换为token(至少应该是这样)
$code = urlencode($_GET["code"]);
$secret = "MYSECRET";
$client_id = "MYCLIENTID";
$redirect_uri = urlencode("http://www.mysupersite.com/callback.html");
$grant_type = "authorization_code";
$url = "https://accounts.google.com/o/oauth2/token";
$headers = array("Content-type: application/x-www-form-urlencoded");
$post = "code=".$code."&client_id=".$client_id."&secret=".$secret."&redirect_uri=".$redirect_uri."&grant_type=".$grant_type;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$json = curl_exec($curl);
curl_close($curl);
var_dump($json);
我真的卡住了,谷歌api从来没有告诉你到底是什么错了。
UPD我知道有一个库用于这种调用,但我正在解决一个简单的任务(根据google api文档),只是看到没有必要包括其他方法的负载
ok my bad - $_GET["secret"]需要为$_GET["client_secret"]