Javascript:使用oauth2检索gmail联系人返回401

时间:2013-05-27 11:13:50

标签: javascript jquery gmail

我有一个用于检索Gmail联系人的HTML代码

https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds/contacts/default/full&state=contact&redirect_uri=MY_REDIRECT_URI&response_type=token&client_id=GMAIL_CLIENT_ID

一切正常,重定向到gmail,然后重定向到我的回调URI,然后显示所有联系人列表,
然后一个月前我不能使用相同的方法 我尝试过使用curl并返回错误401而没有特定的错误消息 这是我使用从谷歌

收到的访问令牌的javascript(jQuery)代码
    $.fn.getGmailContact = function(){
        console.log(gmailAccessToken);
        if(!empty(gmailAccessToken)){
            console.log('test');
            $.ajax({
                type: "GET",
                dataType: 'jsonp',
                url: 'https://www.google.com/m8/feeds/contacts/default/full?access_token='+ gmailAccessToken
            }).done(function(result){
                console.log(result);
                var $inviteCount = $('.invite-count');
                var $inviteList = $('.invite-list');

                // Clear html
                $inviteCount.html('');
                $inviteList.html('');

                // Parse xml to json
                result = xml2json(parseXml(result), "");
                result = JSON.parse(result);
                totalContact = result.feed.entry.length;

                $inviteCount.html('('+ result.feed.entry.length +')');

                if(result.feed.entry.length > 0){
                    var i = 1;
                    $.each(result.feed.entry, function(){
                        var li = '<li data-email="'+ this['gd:email']['@address'] +'">'+ 
                            this['gd:email']['@address'] +
                            '<input id="invite-'+ i +'" type="checkbox" class="input-checkbox" style="display:none" value="" />'+
                            '<label class="invite-label" for="invite-'+ i +'" style="float:right;margin-top:6px;" onclick="jQuery().inviteSwitchCheck(this)" data-email="'+ this['gd:email']['@address'] +'"></label>'+
                        '</li>';
                        $inviteList.append(li);
                        i++;
                    });
                    $.facebox.loading();
                    $.facebox({div:'#invite-popup-container'}, 'facebox-popup-login');
                    $('#facebox .custom-facebox-title').html('INVITE CONTACTS FROM GMAIL');
                    $('#facebox #select-all-label').trigger('click');

                    if(i > 6){
                        $('#facebox #select-all-label').css({
                            marginRight: 18
                        });
                    }
                }
                // Destroy cookie
                $.cookie('gmail_access_token', null);
            }).always(function(result){
            console.log(result);
            });
        }
    }

我的获取数据的方式是否有问题,或者在没有注意到开发人员的情况下gmail是否有任何更改? 我的控制台只回显我的访问令牌和测试字符串,但没有打印结果var。

提前致谢。

0 个答案:

没有答案