javascript – 如何使用查询参数限制Google通讯录API中检索到的联系人
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何使用查询参数限制Google通讯录API中检索到的联系人,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3015字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 如何使用查询参数限制Google通讯录API中检索到的联系人](/upload/InfoBanner/zyjiaocheng/724/1eee4dd90d084c518d272966817037f1.jpg)
我正在尝试使用JavaScript测试Google Contacts API.我知道V1支持JavaScript但V2和V3没有列出它.但是,我已经能够找到一种通过AJAX请求检索联系人的方法,因此获取联系人现在不是问题.但是,我希望能够指定我正在寻找的联系人的搜索条件,这样我就不必搜索并搜索所有用户联系人.
现在,我的代码看起来像这样:
function getContact(domTarget) {
// Get permission and a token
auth(function(token) {
// Create an AJAX request to get the contacts
var ajaxContactRequest = new XMLHttpRequest(),
url = "";
// What to do when we get our contacts
ajaxContactRequest.onreadystatechange = function() {
if (ajaxContactRequest.readyState === 4 && ajaxContactRequest.status === 200) {
// Parse our contact data as a JSON object
var response = JSON.parse(ajaxContactRequest.responseText),
contactArray = response.feed.entry, i, contactDiv;
// Print out the contacts
if (domTarget) {
for (i = 0; i < contactArray.length; i++) {
if (contactArray[i].title && contactArray[i].title.$t) {
contactDiv = document.createElement("div");
domTarget.appendChild(contactDiv);
// Print out the contact's name
contactDiv.innerHTML = contactArray[i].title.$t;
}
}
}
}
};
// Construct our URL
url += "https://www.google.com/m8/feeds/contacts/default/full/";
// Add the access token
url += "?access_token=" + token.access_token;
// Get JSON format back
url += "&alt=json";
// Limit to 10 results
url += "&max-results=10";
// Open the request
ajaxContactRequest.open("GET", url, false);
// Send it away
ajaxContactRequest.send();
});
}
我知道有一些查询支持,因为这里列出:Retrieving Contacts Using Query Parameters提到你可以使用这里找到的参数:Contacts Query Parameters Reference列出q = term1 term2 term 3和`q =“term1 term2 term3”是做的方法“联系人数据字段的全文查询”.
我尝试了几种不同的参数混合,例如名字和姓氏以及日期和电子邮件.但是,它们都不会对结果产生任何影响.我想知道的另一件事是,这真的很重要.我只是根据名称来限制我的查询,以尝试减少响应的大小.但是,如果更好的做法是只抓住整个联系人集,然后收集你需要的信息,我想我可以这样做.
我想如果联系人的数量大于最大结果大小,你必须做多个请求.
解决方法:
您需要切换到Google Contacts API的第3版.
v1和v2不支持“搜索词”(q)参数,因此您仅限于查询参数,如“上次更新”和“排序依据”等.
所以.首先,他们提示所有标题都需要“GData-Version:3.0”参数.
https://developers.google.com/google-apps/contacts/v3/#specifying_a_version
如果你正在使用jQuery,这是相当简单的.这是一个例子:Set Request Header jQuery Ajax
但是在您已经拥有的代码中,您可以将其添加到所有请求的URL中.
url += "https://www.google.com/m8/feeds/contacts/default/full/?v=3";
(再次在jQuery中,如果修改标题是可怕的,也很容易将其添加为参数)
我花了几个星期来解决这个问题,是“范围”本身是错误的.
在您的HTML代码中,我确定您已使用…授权您的应用
scope="https://www.google.com/m8/feeds"
……正如它在文档中所说的那样.但当他们说“所有请求都需要标题”时,他们真正意味着所有请求.如果您使用Google的预先封装的HTML示例来授权您的应用程序,那么您根本无法访问可以修改标头的代码.所以相反,你需要使用……
scope="https://www.google.com/m8/feeds?v=3"
这是因为v2 API和v3 API共享范围URL,如果您并排阅读v2.0和v3.0文档,则实际上只会注意到这一点.
无论如何,我希望有所帮助.
基隆
内容总结
以上是互联网集市为您收集整理的javascript – 如何使用查询参数限制Google通讯录API中检索到的联系人全部内容,希望文章能够帮你解决javascript – 如何使用查询参数限制Google通讯录API中检索到的联系人所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。