我想用PHP通過Google Directory API(Admin SDK)檢索給定域中的所有用戶。PHP檢索所有用戶Google Directory Admin SDK
我已閱讀所有相關文檔,但找不到任何工作解決方案。
的GET請求,我需要運行是:
GET https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2
我試着用捲曲運行:
$curl_handle=curl_init();
$header = array();
$header[] = 'Content-length: 0';
$header[] = 'Content-type: application/json';
$header[] = 'client_id=xxx';
$header[] = 'client_secret=yyy&token=zzz' ;
curl_setopt($curl_handle, CURLOPT_HTTPHEADER,$header);
curl_setopt($curl_handle, CURLOPT_URL,'https://www.googleapis.com/admin/directory/v1/users?domain=westwing.fr&maxResults=2');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
$query = curl_exec($curl_handle);
curl_close($curl_handle);
echo $query;
結果如下:
{「error」:{「errors」:[{「domain」:「global」,「reason」:「required」, 「message」:「Login R equired」, 「的locationType」: 「首部」, 「位置」: 「授權」}], 「代碼」:401, 「消息」: 「
我假定有需要登錄」}}是一個鑑別問題,但我無法解決它。請注意,我使用google-api-php-client獲取令牌和谷歌登錄。
謝謝。
#########編輯15:04 15年9月5日我修改請求:
$thetok=array();
$thetok= json_decode($_SESSION["token"] ,true);
$thetoken = $thetok["access_token"] ;
//print_r($thetok);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2&viewType=domain_public');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers[0] = 'Authorization: Bearer ' . $thetoken;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
print_r($headers);
但得到的答覆仍然是:
#########編輯15:14 15年9月5日{「錯誤「:{」errors「:[{」domain「:」global「,」reason「:」authError「, 」message「:」Invalid Credentials「,」locationType「:」header「, 」location「 「}],」code「:401,」message「:」無效 憑證「}}
我再次修改它,現在我有一個403錯誤(沒有足夠的權限):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2&viewType=domain_public&access_token='.$thetoken.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
print_r($headers);
我只是去嘗試,它給我下面的錯誤:{「錯誤」:{「錯誤」:[{「域」:「全局「,」原因「:」authError「,」消息「:」無效憑證「,」locationType「:」標題「,」位置「:」授權「}],」代碼「:401,」消息「:」無效憑據「}} – justberare
可能您的訪問令牌已過期;用curl檢查一下https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' –