向Google通讯录的联系人添加生日

时间:2014-07-14 01:10:10

标签: vb.net gdata gdata-api google-contacts

我对如何将生日添加到.NET中的Google通讯录API中的联系人条目感到有些困惑。

现在,我正在创建一个新的联系人条目:

Dim contact As New Contact
contact.Name = New Name()
...
contact.ContactEntry.Birthday = pushedBirthday
...
service.Insert(feedUri, contact) 'Insert using the Contacts API

现在,每当我这样做时,我都会收到来自Google的HTTP 400(错误请求)。我不确定这里发生了什么......联系人API文档中显示的示例在创建生日方面并没有详细说明,因此我有点迷失。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

哇噢!我想通了。显然,我生日的日期格式化了一个错误,因为它在谷歌的结尾是无效的架构。

以下是我的发现:

在我的代码中,我基本上提取了Atom XML条目,以像这样的XML来查看联系对象:

            Dim st As New System.IO.MemoryStream()

            newContact.AtomEntry.SaveToXml(st)

            Dim sw As New System.IO.StreamWriter("C:\test.xml")
            sw.Write(Encoding.UTF8.GetString(st.ToArray()))
            sw.Close()

这基本上将XML表示写为磁盘test.xml。现在,我看了一下XML,生日就在那里。所以我在这里访问了Google的OAuth2游乐场:https://developers.google.com/oauthplayground/并使用相同的POST CreateContact操作传入XML消息。

事实证明,日期验证期望数据类型为xs:date。我的日期格式为MM/dd/yyyy,但失败了。相反,我将其更改为yyyy-MM-dd并且事情有效!

我不知道OAuth2游乐场,但在发生错误时获取更详细的异常非常有用。 :)