我需要使用jquery获取google联系人。我已经成功地全面实施了。但问题是我找不到那个联系人的名字。谷歌只是提供给我该用户的电子邮件地址。用户不提供其他信息。我错过了什么。
在这里,我附上完整的代码与响应。
这里是完整代码
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript">
var clientId = "google_clientId";
var apiKey = "google_api_key";
var scopes = 'https://www.google.com/m8/feeds/';
$(document).on("click", ".googleContactsButton", function (e) {
gapi.client.setApiKey(apiKey);
window.setTimeout(authorize);
});
function authorize() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthorization);
}
function handleAuthorization(authorizationResult) {
if (authorizationResult && !authorizationResult.error) {
$.get("https://www.google.com/m8/feeds/contacts/default/full?alt=json&access_token=" + authorizationResult.access_token + "&alt=json",
function (response) {
//process the response here
console.log(JSON.stringify(response));
});
}
}
</script>
这里是API的响应
[
{
"id": {
"$t": "http://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/base/87427988f9359bf"
},
"updated": {
"$t": "2016-07-21T08:09:55.053Z"
},
"category": [
{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}
],
"title": {
"type": "text",
"$t": ""
},
"link": [
{
"rel": "http://schemas.google.com/contacts/2008/rel#edit-photo",
"type": "image/*",
"href": "https://www.google.com/m8/feeds/photos/media/ishan%40inheritx.com/87427988f9359bf/1B2M2Y8AsgTpgAmY7PhCfg"
},
{
"rel": "self",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf"
},
{
"rel": "edit",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf/1469088595053001"
}
],
"gd$email": [
{
"rel": "http://schemas.google.com/g/2005#other",
"address": "[email protected]"
}
]
}
]
在响应中,我们没有找到任何字段,如first-name和last-name。任何帮助将不胜感激。
但是如果我手动添加名称,则它会在标题键中显示我。但如果该联系人名称是从谷歌+同步,那么它显示我空白。
谢谢
2条答案
按热度按时间9rbhqvlz1#
在URL的末尾添加&v=3。这将填充名称字段。但是,由于响应中的title字段为空,这意味着该特定联系人没有应用任何名称。
同样,无关且无害,但看起来你在URL查询参数中指定了两次alt=json。
dluptydi2#
我们没有找到任何字段,如first-name和last-name。任何帮助将不胜感激
获取联系人的全名有点棘手。使用oauth playground,Contactsv 3,我是这样做的:
1.首先,您需要知道您的联系人的 contactId。怎么做?
GET https://www.google.com/m8/feeds/contacts/{your_userEmail}/full
此URI请求将返回与您的电子邮件关联的所有联系人。现在contactId在XML
<id> tag
中找到。<id>http://www.google.com/m8/feeds/contacts/../base/123456789abcdefg</id>
在本例中,* 123456789 abcdefg * 是某个人的 contactId。完整的名称可以在
<title>
标签中找到。<title type="text">John Carmack</title>
1.与步骤1不同的是,要单独获取此人的联系方式,请使用:用途:
GET
https://www.google.com/m8/feeds/contacts/{your_userEmail}/full/123456789abcdefg
现在由您来解析此响应并相应地使用它。我还没有检查是否有JSON格式,但我希望这对你有帮助。