我正在尝试通过google登录获取所有用户的联系方式。我正在获取联系方式名称,电子邮件和其他详细信息,但没有联系方式。我专门尝试使用Contacts API v3。
提供了一种获取联系人详细信息(包括电话号码)的方法,但是我不确定如何在javascript中做到这一点。我四处搜寻,发现人们正在使用通讯录API v2和v1来获取此信息。但是即使在那儿,我也找不到合适的例子。我目前使用google api(gapi)的实现为我提供了这种格式的联系人
displayName:“ Jamie Lannister” etag:“” XXXXXXXX-YYYYYYYYYYYYYYYYYY / Wl9XXXXXXXXXXXXXZ9-cJsx-wUY“” id:“ 107108760XXXXXXXXXXXX”图片:对象url:“ https://lh4.googleusercontent.com/-9Iyxxxxxxx/xxxxxxxxxkxxx/xxx -xxx / photo.jpg?sz = 50 “ proto:对象种类:” plus#person“ objectType:” person“网址:” https://plus.google.com/107108760XXXXXXXXXXXX
我的问题是,是否真的有可能获得带有电话号码的用户的google +或google联系人?如果是,请在这里回答。还有其他方法吗?
哦,顺便说一句,这个问题还没有资格获得赏金。正确答案将在接下来的2天内获得+50悬赏。
我使用以下javascript函数(httpGet)来获取具有名称和号码的google联系人。我在“ theUrl”参数中传递的网址是:“ https://www.google.com/m8/feeds/contacts/[email protected]/full?access_token= “ + authToken +'&max-results = 9999 '”
function httpGet(theUrl)
{
$.ajax({
type: "GET",
url: theUrl,
dataType: "jsonp",
success: function (xml) {
$(xml).find('entry').each(function(){
var name = '';
var number = '';
$(this).find("gd\\:phoneNumber").each(function(){
number = $(this).text();
});
$(this).find("title").each(function(){
name = $(this).text();
});
if(number!=null && number.length>0)
{
number = number.replace(/[^0-9]/g,'');
userContacts.push(name+'-'+number);
}
});
},
});
}
说明:默认情况下,google返回特定数量的联系人,以使所有联系人在max-results参数中传递一个很大的数字(因此为9999)。authToken是授权用户后得到的。电子邮件地址:获得身份验证令牌后,您也会查询电子邮件地址。这是我的做法:
function getEmail(){
gapi.client.load('oauth2', 'v2', function() {
var request = gapi.client.oauth2.userinfo.get();
request.execute(getEmailCallback);
});
}
function getEmailCallback(obj){
email = '';
if (obj['email']) {
email = obj['email'];
//here you get the email address of the user who just signed in
}
}
此处的gapi是Google的api javascript对象。添加此脚本,您就可以开始了
script type="text/javascript" src="http://www.google.com/jsapi"/ (add jQuery script too)
在httpGet()中没有ajax调用的情况下,您将收到跨域合规性错误。在提到的网址的httpGet之后收到的是一个xml文件,httpGet()方法内部的全部成功都是用于解析该xml,您还将收到一堆其他信息,如果也需要解析这些信息(我只需要联系数字和名称)。如果您想使用带有联系人的Google帐户,只需登录到Google联系人并在其中添加一些测试电话号码即可。
不用说,您还将为此需要客户端ID,密钥,API密钥等。请转到下面提供的链接以获取详细信息。httpGet()中的用户联系人var包含所有用连字符分隔的用户联系人。httpGet()中的正则表达式模式是仅从联系人号码中选择号码,否则您可能会收到类似这样的信息(123)456 7890。
直接从Google获得更多详细信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句