php
  • api
  • oauth
  • 2012-08-12 67 views 3 likes 
    3

    我正在使用Oauth 2.0导入联系人,但我只收到电子邮件地址。任何方式来获得其他领域?另外,如何使用Google API创建联系人。 只需使用PHP。如何使用PHP从Google获取完整的联系信息?

    这里是我的代码:

    //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>"; 
    

    回答

    3

    好吧,如果你只是XML语法gd:email,那么你肯定只能获得的电子邮件地址。请参阅Contact kind documentation以了解您还可以解析的元素的概述。

    有关创建联系人,则可以只发出与人体相同的端点的联络方式POST请求:

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

    有关详细的文档上的联系方式与格式,请参见API documentation

    0

    PHP GMAIL Contacts XML Parsing with DOMDocument and cURL

    DNT知道添加联系人,但上面的链接应该让你在正确的方向开始,创建一个DOMDocument类和追加节点连接到它(PHP手册)。我认为这是要走的路,保持与谷歌联系API的

    +0

    使用谷歌联系api的[link](https://developers.google.com/google-apps/contacts/v3/index)v3.0 ,而不是v2的gdata。还可以使用[link](https://developers.google.com/oauthplayground/)访问联系人API(或其他api),将xml保存到本地磁盘并使用XML,因为返回的数据可能会不堪重负 – ritin 2013-08-11 07:39:05

    相关问题