3

Oauth 2.0を使用して連絡先をインポートしていますが、メールアドレスしか取得していません。他のフィールドを取得する方法はありますか?また、GoogleAPIを使用して連絡先を作成するにはどうすればよいですか。PHPのみを使用する必要があります。

これが私のコードです:

//setting parameters
$authcode= $_GET["code"];
$clientid='xxxxxxx';
$clientsecret='secret';
$redirecturi='validate.php';
$fields=array(
 'code'=>  urlencode($authcode),
 'client_id'=>  urlencode($clientid),
 'client_secret'=>  urlencode($clientsecret),
 'redirect_uri'=>  urlencode($redirecturi),
 'grant_type'=>  urlencode('authorization_code')
);
//url-ify the data for the POST
$fields_string='';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string=rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,'https://accounts.google.com/o/oauth2/token');
curl_setopt($ch,CURLOPT_POST,5);
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
// Set so curl_exec returns the result instead of outputting it.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//to trust any ssl certificates
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
//extracting access_token from response string
$response=  json_decode($result);
$accesstoken= $response->access_token;
//passing accesstoken to obtain contact details
$xmlresponse=  file_get_contents('https://www.google.com/m8/feeds/contacts/default     /full?oauth_token='.$accesstoken.'&max-results=5');
//reading xml using SimpleXML
 $xml=  new SimpleXMLElement($xmlresponse);
 $xml->registerXPathNamespace('gd', 'http://schemas.google.com/g/2005');
 $result = $xml->xpath('//gd:email');
 foreach ($result as $title) {
  $addrss=$title->attributes()->address;
  echo $addrss."<br><br>";
4

2 に答える 2

3

XML のみを解析する場合はgd:email、メール アドレスしか取得できません。解析できる要素の概要については、連絡先の種類のドキュメントを参照してください。

連絡先を作成するには、本文に連絡先の詳細を含む POST リクエストを同じエンドポイントに発行するだけです。

https://www.google.com/m8/feeds/contacts/default/full

連絡先の詳細の形式に関する詳細なドキュメントについては、API ドキュメントを参照してください。

于 2012-08-13T16:30:13.810 に答える
0

DOMDocument と cURL を使用した PHP GMAIL Contacts XML 解析

連絡先の追加についてはわかりませんが、上記のリンクから正しい方向に進み、DomDocument クラスを作成してノードを追加する必要があります (php マニュアル)。Googleの連絡先APIのインラインを維持しながら、進むべき道だと思います

于 2013-08-09T14:49:56.343 に答える