我目前正在通过GoogleContact API v3访问google联系人。我使用以下命令:
"https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json&v=3&q=Susan"
它以gdata格式向我返回一个json结构响应。
{
"version": "1.0",
"encoding": "UTF-8",
"feed": {
"xmlns": "http://www.w3.org/2005/Atom",
"xmlns$openSearch": "http://a9.com/-/spec/opensearch/1.1/",
"xmlns$batch": "http://schemas.google.com/gdata/batch",
"xmlns$gd": "http://schemas.google.com/g/2005",
"xmlns$gContact": "http://schemas.google.com/contact/2008",
"gd$etag": "W/"A0IGQ3gycSt7I2A9XR5WEk4."",
"id": {
"$t": "firstlast@gmail.com"
},
"updated": {
"$t": "2017-01-24T06:32:02.699Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": "User1 contact"
},
"link": [{
"rel": "alternate",
"type": "text/html",
"href": "http://www.google.com/"
}, {
"rel": "http://schemas.google.com/g/2005#feed",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/darewreckk%40gmail.com/full?v=3"
}, {
"rel": "http://schemas.google.com/g/2005#post",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?v=3"
}, {
"rel": "http://schemas.google.com/g/2005#batch",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full/batch?v=3"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?alt=json&q=First&max-results=25&v=3"
}],
"author": [{
"name": {
"$t": "First Last"
},
"email": {
"$t": "firstlast@gmail.com"
}
}],
"generator": {
"version": "1.0",
"uri": "http://www.google.com/m8/feeds",
"$t": "Contacts"
},
"openSearch$totalResults": {
"$t": "2"
},
"openSearch$startIndex": {
"$t": "1"
},
"openSearch$itemsPerPage": {
"$t": "25"
},
"entry": [{
"gd$etag": ""QHc9fjVSLyt7I2A9WxBXFUgKRAI."",
"id": {
"$t": "http://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/base/8"
},
"updated": {
"$t": "2010-01-26T23:59:21.966Z"
},
"app$edited": {
"xmlns$app": "http://www.w3.org/2007/app",
"$t": "2010-01-26T23:59:21.966Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": "FirstName LastName"
},
"link": [{
"rel": "http://schemas.google.com/contacts/2008/rel#photo",
"type": "image/*",
"href": "https://www.google.com/m8/feeds/photos/media/first.name%40gmail.com/8?v=3"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
}, {
"rel": "edit",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
}],
"gd$name": {
"gd$fullName": {
"$t": "First Last"
},
"gd$givenName": {
"$t": "First"
},
"gd$familyName": {
"$t": "Last"
}
},
"gd$email": [{
"rel": "http://schemas.google.com/g/2005#other",
"address": "firstlast@hotmail.com",
"primary": "true"
}]
}, {
"gd$etag": ""RX0_cTVSLyt7I2A9WxFTEUUKRwY."",
"id": {
"$t": "http://www.google.com/m8/feeds/contacts/first.last%40gmail.com/base/7cba75689bbb171"
},
"updated": {
"$t": "2010-04-02T03:47:04.349Z"
},
"app$edited": {
"xmlns$app": "http://www.w3.org/2007/app",
"$t": "2010-04-02T03:47:04.349Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": ""
},
"link": [{
"rel": "http://schemas.google.com/contacts/2008/rel#photo",
"type": "image/*",
"href": "LinkUrl"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "SelfUrl3"
}, {
"rel": "edit",
"type": "application/atom+xml",
"href": "EditUrl3"
}],
"gd$email": [{
"rel": "http://schemas.google.com/g/2005#other",
"address": "first.last@gmail.com",
"primary": "true"
}]
}]
}
}
目前,我已经得到了响应,并创建了自己的方法来访问每个文件。是否有一个已经定义的库可以将其转换为更可读的对象?
例如,"gd$name"我猜是一个名称的谷歌数据表示。有没有一种方法可以将它转换为gData联系人对象,从而为我提供名称字段,而无需编写自己的gData解析器?
谢谢Derek
API引用可在此处找到:https://developers.google.com/google-apps/contacts/v3/
可以在此处找到.NET SDK(客户端库):https://www.nuget.org/packages/Google.GData.Contacts/
有关如何使用客户端库的示例,请参阅API参考资料。