我试图用JavaScript测试Google Contacts API。我知道V1支持JavaScript,但V2和V3没有列出它。但是,我已经能够找到一种通过AJAX请求来检索联系人的方法,因此获取联系人现在不是真正的问题。但是,我希望能够指定我正在查找的联系人的搜索条件,这样我就不必在所有用户联系人中进行寻呼和搜索。如何使用查询参数限制Google Contacts API中检索到的联系人
现在,我的代码如下所示:
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”是执行“对联系人数据字段进行全文查询”的方式。
我尝试了几种不同的参数混合,例如名字和姓氏以及日期和电子邮件。但是,他们没有一个对结果有任何影响。我想知道的另一件事是,如果这真的很重要。我限制基于名称的查询,以尝试缩小响应的大小。但是,如果更好的做法是只抓取整个联系人集合,然后收集所需信息,我想我可以做到这一点。
我想你必须做多个请求,如果联系人的数量大于max-results
大小。
嗨,你解决了这个问题吗?目前有同样的问题。 – Albert