无法在PHP curl中向Google添加联系人

时间:2013-01-16 06:33:25

标签: php xml curl google-contacts

我想在谷歌联系人中添加一个数据联系人。我收到的错误是“你的请求中有错误。这就是我们所知道的。”

代码如下

<?php
$contact_detail='<?xml version="1.0"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005">
    <gd:name>
        <gd:firstName>John</gd:firstName>
        <gd:additionalName> test</gd:additionalName>
        <gd:givenName>Doe</gd:givenName>
    </gd:name>
    <gd:email address="john@doe.com" rel="http://schemas.google.com/g/2005#work"/>
    <gd:email address="john2@doe.com" rel="http://schemas.google.com/g/2005#home"/>
    <gd:organization rel="http://schemas.google.com/g/2005#work">
        <gd:orgName>John Deere</gd:orgName>
        <gd:orgTitle>Owner</gd:orgTitle>
    </gd:organization>
</atom:entry>';
$url="https://www.google.com/m8/feeds/contacts/default/full";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_MUTE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$contact_detail");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
print($output);
curl_close($ch);

1 个答案:

答案 0 :(得分:0)

https://developers.google.com/google-apps/contacts/v2/developers_guide_protocol

要发布此条目,请将其发送到联系人列表帖子URL,如下所示。首先,使用application / atom + xml内容类型将Atom元素放在新POST请求的主体中。然后将其发送到帖子URL。例如,要将联系人添加到属于liz@gmail.com的联系人列表,请将新条目发布到以下URL:https://www.google.com/m8/feeds/contacts/liz%40gmail.com/full