2016-05-19 21 views
0

Ich versuche, Kontakte in der Systemgruppe "Meine Kontakte" hinzuzufügen.Fügen Sie den Kontakt in der richtigen Systemgruppe mit der Google Kontakte-API hinzu.

ich einen Kontakt „ohne Gruppe“ erstellen kann (gespeichert in „Sonstige Kontakte“) sehen Sie den Code: http://pastebin.com/q0zksgM7

{ 
     $acontact_formated = ' 
      <atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> 
       <atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/> 
       <gd:name> 
        <gd:givenName>'.$acontact["givenName"].'</gd:givenName> 
        <gd:familyName>'.$acontact["sn"].'</gd:familyName> 
        <gd:fullName>'.$acontact["displayName"].'</gd:fullName> 
       </gd:name> 
       <gd:email rel="http://schemas.google.com/g/2005#work" primary="true" address="'.$acontact["mail"].'" displayName="'.$acontact["displayName"].'" /> 
      </atom:entry>'; 

     $urlToSendReq = "https://www.google.com/m8/feeds/contacts/".$this->_account."/full/?access_token=".$this->_access_token; 
     $bodyRequest = $acontact_formated; 
     $headerRequest = array("Content-Type"=>"application/atom+xml", "GData-Version"=>"3.0"); 

     try 
     {return myhttpservice::httpPost($urlToSendReq, $headerRequest, $bodyRequest);} 
     catch (GuzzleHttp\Exception\ClientException $e) 
     {return $e->getMessage();} 

     return "OK"; 
    } 

Aber wenn ich fügen Sie alle „Gruppen-ID“ in der ATOM Kontakt Schöpfung, ich erhalte eine „Bad Request“: vorherigen Code durch Modifikation sehen: http://pastebin.com/gUCTs1K7

{ 
     $acontact_formated = ' 
      <atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> 
       <atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/> 
       <gd:name> 
        <gd:givenName>'.$acontact["givenName"].'</gd:givenName> 
        <gd:familyName>'.$acontact["sn"].'</gd:familyName> 
        <gd:fullName>'.$acontact["displayName"].'</gd:fullName> 
       </gd:name> 
       <gd:email rel="http://schemas.google.com/g/2005#work" primary="true" address="'.$acontact["mail"].'" displayName="'.$acontact["displayName"].'" /> 
       <gContact:groupMembershipInfo deleted="false" href="http://www.google.com/m8/feeds/groups/'.$this->_account.'/base/'.$this->MySystemContactGroupId.'"/> 
      </atom:entry>'; 

     $urlToSendReq = "https://www.google.com/m8/feeds/contacts/".$this->_account."/full/?access_token=".$this->_access_token; 
     $bodyRequest = $acontact_formated; 
     $headerRequest = array("Content-Type"=>"application/atom+xml", "GData-Version"=>"3.0"); 

     try 
     {return myhttpservice::httpPost($urlToSendReq, $headerRequest, $bodyRequest);} 
     catch (GuzzleHttp\Exception\ClientException $e) 
     {return $e->getMessage();} 

     return "OK"; 
    } 

ist es möglich, einen Kontakt direkt in „Meine Kontakte“ Systemgruppe zu erstellen, oder ist es notwendig, in der 1. Zeit t zu erstellen Er kontaktiert und aktualisiert danach?

Vielen Dank für Ihre Hilfe :)

Antwort

0

ich von mir selbst gefunden :)

Um die Systemgruppe URLID der einzige Weg, v = 2 in GET-Anforderung zu setzen, ist abrufen:

https://www.google.com/m8/feeds/groups/".$this->_account."/full"?v=2&access_token=".$this->_access_token

Nachdem Sie einen Kontakt erstellen können, indem Sie hinzufügen:

<gContact:groupMembershipInfo deleted="false" href="'.$MyContactSystemGroup_urlid.'"/>