在javascript中通过google登录获取所有用户的联系人列表(包括电话号码)

德拉鲁巴

我正在尝试通过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 = 50proto:对象种类:” 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android从联系人列表中获取电话号码

从联系人列表中获取电话号码

Android在ArrayList中获取所有联系人的电话号码

通过联系人姓名获取电话号码

如果号码格式不同,如何匹配用户联系人列表中的电话号码?

快速获取带有ContactsUI的所有联系人电话号码

在ngCordova Contacts插件中获取所有联系人至少一个电话号码

使用联系人Android Studio的电话号码在联系人列表中打开联系人信息

Android如何通过我的通话记录联系人电话号码获取联系人ID

使用ContentProvider从联系人获取电话号码-Android

从电话号码获取实际的联系人姓名

从Android联系人簿获取电话号码

Android-从电话号码获取联系人照片

我如何获取所选联系人的电话号码

iOS通讯录如何通过电话号码获取联系人

如何通过Xamarin C#在Android中添加具有多个电话号码的联系人?

将工作表单元格值中的电话号码与 Google 联系人匹配并获取全名和地址

在Swift中获取联系人姓名和电话号码

从ListView中选择联系人,并在Android中获取他们的电话号码

如何从他的电话号码中获取联系人的姓名

如何获取所需的联系人显示名称基于反应本机中的电话号码

搜索联系人并从android中的电话联系人获取联系人号码

如何将我所有的联系人电话号码整理到一个数组中?

如何使用CNContact将所有联系人的电话号码编译到一个单元格中

我们如何使用Iphone应用程序中的swift从联系人获取电话号码?

通过电话号码搜索联系人,并使用3位数前缀过滤

通过电话号码从Exchange Server查询GAL联系人

如何通过姓名和电话号码搜索联系人?

如何选择联系人的非默认电话号码?