0

何か不足しているかどうかはわかりませんが、Google cpanel から共有の連絡先を取得できません!?

最初のリクエストで認証トークンが返ってきますが、次は返ってきますHTTP/1.1 401 Unknown authorization header

ドキュメント:

https://developers.google.com/google-apps/domain-shared-contacts/

コード:

// Authentication
$post_data = array(
    'accountType' => 'HOSTED',
    'Email' => 'my_email@gmail.com',
    'Passwd' => 'password',
    'service' => 'cp',
    'source' => 'the_source'
);
$post = http_build_query($post_data);
$fp = fsockopen('ssl://www.google.com', 443, $errno, $errstr, 20);
$header = "POST /accounts/ClientLogin HTTP/1.1\\r\n".
    "Host: www.google.com\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Content-Length: ".strlen($post)."\r\n".
    "Connection: Close\r\n\r\n".$post;
fwrite($fp, $header);
$auth_response = '';
while($line = fgets($fp)){
    $auth_response .= $line;
}
fclose($fp);

list($header, $content) = explode("\r\n\r\n", $auth_response);
preg_match('/\sauth=(.*)\s/i', $content, $matches);
$auth_token = $matches[1];

// Retrieve contacts
$response = '';
$fp = fsockopen('ssl://www.google.com', 443, $errno, $errstr, 20);
$write = "GET /m8/feeds/contacts/my_domain/full HTTP/1.1\r\n".
    "Host: www.google.com\r\n".
    "Authorization: my_email@gmail.com token=\"$auth_token\"\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n\r\n".
    "Connection: Close\r\n\r\n";
fwrite($fp, $write);
while($line = fgets($fp)){
    $response .= $line;
}
fclose($fp);
echo $response;
4

1 に答える 1

0

ClientLoginのドキュメントでは、認証ヘッダーは次のようにすべきであると述べています。

Authorization: GoogleLogin auth=yourAuthToken
于 2012-08-07T12:24:11.803 に答える