我正在尝试使用PHP中的cURL构建GET / POST来检索和更新Gmail签名。 由于服务器的限制,我正在使用较旧的PHP 5.3服务器进行测试和PHP库v.1。 我可以使用这些库从Directory和Gmail api中检索数据,但我需要根据文档进行签名的GET / POST
https://developers.google.com/admin-sdk/email-settings/#api_operations
登录部分由GooglePlus处理。 这是用于刷新令牌的POST。有一些vardumps因为我无法SSH到服务器,或使用xdebug。
function getToken() {
$curl = curl_init();
$url ="https://accounts.google.com/o/oauth2/token";
$ses = json_decode($_SESSION['token'],true);
$opt =array(
"client_id" =>"************************",
"client_secret" =>"********************",
"grant_type" =>"refresh_token",
"refresh_token" =>"$ses[refresh_token]"
);
echo '<pre>';
echo 'OPT';
print_r ($opt);
echo '</pre>';
curl_setopt($curl, CURLOPT_POST,true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_POSTFIELDS,$opt);
$newtok =curl_exec($curl);
echo'<pre>';
echo 'New Token';
echo('getToken output'.var_dump($newtok).'<br>');
echo '</pre>';
curl_close($curl);
return $newtok;
}
和GET PART
function httpGet($url) {
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
try {
$auth_token = $_SESSION['access_token'];
$auth_token = json_decode($_SESSION['token']);
echo '<pre>';
echo 'Old tekon';
var_dump($auth_token);
echo '</pre>';
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$toknew = getToken();
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: GoogleLogin auth='.($toknew).''));
$output = curl_exec($ch);
curl_close($ch);
return $output;
}catch (Exception $e) {
print_r($e);
}
echo('httpGet var dump'.var_dump($output).'<br>');
}
}
我正在调用这个函数
echo httpGet("https://apps-apis.google.com/a/feeds/emailsettings/2.0/mydomain.com/my.user/signature");
根据var_dumps,我使用getToken()获得的令牌与我使用google登录获得的令牌不同,但我认为我使用它错了或者我误解了我实际需要的令牌。
EDIT。 更换后
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: GoogleLogin auth='.($toknew).''));
带
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization: Bearer ya29.XXXXX(acces token)'));
我现在得到像
这样的东西https://apps-apis.google.com/a/feeds/emailsettings/2.0/my.domain/my.user/signature2016-03-08T15:09:50.799Z
没有想法如何解析结果:|