2017-02-07 3 views
0

-je insérer avec lot php apiclient et dupliquer les entrées dans les contacts Googlegooglecontacts api en double lorsque les contacts de traitement par lots d'insertion

J'utilise:

$contactXML = 
"<feed xmlns='http://www.w3.org/2005/Atom' 
     xmlns:gContact='http://schemas.google.com/contact/2008' 
     xmlns:gd='http://schemas.google.com/g/2005' 
     xmlns:batch='http://schemas.google.com/gdata/batch'> 
    <entry> 
    <batch:id>create</batch:id> 
    <batch:operation type='insert'/> 
    <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2008#contact'/> 
    <gd:name> 
     <gd:fullName>Elizabeth Bennet</gd:fullName> 
     <gd:givenName>Elizabeth</gd:givenName> 
     <gd:familyName>Bennet</gd:familyName> 
    </gd:name> 
    <gd:email rel='http://schemas.google.com/g/2005#home' address='[email protected]' primary='true'/> 
    </entry> 
    <entry> 
    <batch:id>create2</batch:id> 
    <batch:operation type='insert'/> 
    <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2008#contact'/> 
    <gd:name> 
     <gd:fullName>maria pomez</gd:fullName> 
     <gd:givenName>maria</gd:givenName> 
     <gd:familyName>pomez</gd:familyName> 
    </gd:name> 
    <gd:email rel='http://schemas.google.com/g/2005#home' address='[email protected]' primary='true'/> 
    </entry> 

</feed> 
"; 

$headers = array(
    'Host' => 'www.google.com', 
    'Gdata-version' => '3.0', 
    'Content-length' => strlen($contactXML), 
    'Content-type' => 'application/atom+xml', 
    'alt' => 'json', 
    'CURLOPT_SSLVERSION' => '3' 
); 

$url = 'https://www.google.com/m8/feeds/contacts/default/full/batch'; 

$resultado = $httpClient->post($url, ['headers' => $headers, 'body' => $contactXML]); 

Mais les contacts a été dupliquée.

Est si étrange, lorsque vous utilisez xdebug pour déboguer le code ne pas dupliquer les contacts.

J'ai vu les pétitions de réseau des développeurs d'outils de navigateur et ne fais qu'une pétition pour la page.

Quelqu'un peut-il m'aider?

Thx

Désolé pour mon anglais

+0

Puisque c'est PHP, est-il possible le navigateur a envoyé deux demandes? L'API Contacts n'a aucun moyen de distinguer les demandes répétées en tant que même demande dupliquée et créerait donc les mêmes contacts maintes et maintes fois si la même requête est rejouée. –

+0

Je fais seulement une demande – Chus

+0

Comment puis-je vérifier si faire deux demande? – Chus

Répondre

0

a été corrigé par la mise à jour googleclient php 2.1.1