我目前正在通过 GoogleContact API v3 访问谷歌联系人。我使用以下命令:
"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 解析器即可提供名称字段?
谢谢德里克