我对如何将生日添加到.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文档中显示的示例在创建生日方面并没有详细说明,因此我有点迷失。
有什么想法吗?
答案 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游乐场,但在发生错误时获取更详细的异常非常有用。 :)