Google通讯录错误“缺少资源版本ID”

时间:2014-12-19 00:39:43

标签: google-contacts

好的,事情开始对我有用了。但是,现在我正在尝试更新联系人,并且正在获取"缺少资源版本ID"信息。步骤进行:

1)通过API检索联系 - 成功 2)更新联系人中的值 3)使用new" entry"写出一个xml文件。 - xml验证 4)尝试做PUT,我得到了错误。

put命令我使用:

curl -s --request PUT \
        --header If-Match: * \
        --header "Content-Type: application/atom+xml" \
        --header "Depth: 0" \
        --header "Authorization: Bearer <auth code> \
        --data-binary @/tmp/GooglePut0AGQzE \
https://www.google.com/m8/feeds/contacts/default/full/4375e4498ef0b274

xml是:

<entry xmlns="http://www.w3.org/2005/Atom" 
       xmlns:batch="http://schemas.google.com/gdata/batch"
       xmlns:gContact="http://schemas.google.com/contact/2008" 
       xmlns:gd="http://schemas.google.com/g/2005">
    <category scheme="http://schemas.google.com/g/2005#kind" 
              term="http://schemas.google.com/contact/2008#contact" />
    <id>http://www.google.com/m8/feeds/contacts/default/base/4375e4498ef0b274</id>
    <gContact:externalId label="enduser_acnt" rel="http://schemas.google.com/g/2005#customer" value="6006533" />
    <gd:name><gd:givenName>Dwayne</gd:givenName><gd:familyName>Johnson</gd:familyName></gd:name>
    <title type="text">Andy Wallace</title>
    <content type="text">Hello</content>
    <gd:organization rel="http://schemas.google.com/g/2005#other">
        <gd:orgName>iHOUSEweb, Inc</gd:orgName>
        <gd:orgTitle>Engineer</gd:orgTitle>
    </gd:organization>
    <gd:structuredPostalAddress rel="http://schemas.google.com/g/2005#home" primary="true">
        <gd:street>100 Smell St</gd:street>
        <gd:city>Smellville</gd:city>
        <gd:region>CA</gd:region>
    </gd:structuredPostalAddress>
    <gd:email rel="http://schemas.google.com/g/2005#work" address="awallace@ihouseweb.com" primary="true" />
    <gd:phoneNumber rel="http://schemas.google.com/g/2005#home" primary="true" >333-444-3333</gd:phoneNumber>
    <gd:phoneNumber rel="http://schemas.google.com/g/2005#work" >222-333-4444</gd:phoneNumber>
</entry>

有关错误含义的任何建议?我试图剥离各种数据,指定/不指定&#34; If-Match:*&#34;标题,但似乎没有什么可以扭转局势。

感谢, 安迪

2 个答案:

答案 0 :(得分:1)

添加if-match标头字段,并确保使用最新版本运行API。

https://developers.google.com/apps-script/

答案 1 :(得分:1)

好的,找到了我的问题。我正在使用&#34; If-Match&#34;标题错了。 DOH ...

curl -s --request PUT \
         --header "If-Match: *" \
         --header "Content-Type: application/atom+xml" \
         --header "Depth: 0" \
         --header "Authorization: Bearer <auth key>" \
         --data-binary @/tmp/GooglePutwAdE69 \
         https://www.google.com/m8/feeds/contacts/default/full/4375e4498ef0b274

感谢dumbgamergirl,把我的大脑指向了正确的方向