Here is what I have.

my scope is 'https://www.google.com/m8/feeds';

also, used the playgroud 

      I got error :: HTTP/1.1 400 Bad Request

Content-length: 133
Content-type: text/plain

An error occured while connecting to the server: Unable to fetch URL: https:// 
https://www.google.com/m8/feeds/contacts/default/full/



authorize: function(req, res){
    var CLIENT_ID = 
'****080821-vhsphqc79tb5ohfgpuvrp8uhh357mhad.apps.googleusercontent.com';
    var CLIENT_SECRET = '***fAXX0in5JEiQiPW8';
    var SCOPE = 'https://www.google.com/m8/feeds';
        oa = new oauth.OAuth2(CLIENT_ID,
  CLIENT_SECRET,
  "https://accounts.google.com/o";,
  "/oauth2/auth",
  "/oauth2/token");
    res.redirect(oa.getAuthorizeUrl({scope:SCOPE, response_type:'code', 
redirect_uri:'http://localhost:1234/callback'}));
  },
  callback: function(req, res){
    console.log(req.query.code);
    oa.getOAuthAccessToken(req.query.code, 
{grant_type:'authorization_code', 
redirect_uri:'http://localhost:1234/callback'}, function(err, access_token, 
refresh_token) {
if (err) {
    res.end('error: ' + JSON.stringify(err));
} else {
          getContactsFromGoogleApi(access_token);
       
}
    });



function getContactsFromGoogleApi (access_token, req, res, next) {
  console.log('access_token ' + access_token);
    request.get({
        url: 'https://www.google.com/m8/feeds/contacts/default/full',
        qs: { 
          alt:           'json', 
          'max-results':  1000,
          'orderby':     'lastmodified'
        },
        headers: { 
          'Authorization': 'GoogleLogin auth=' + access_token,
          'GData-Version': '3.0'
        }
      }, function (err, res, body) {
        if(res.statusCode === 401){
          return res.redirect('index');
        }
        var feed = JSON.parse(body);

        var users = feed.feed.entry.map(function (c) {
          var r =  {};
          if(c['gd$name'] && ['gd$fullName']){
            r.name = c['gd$name']['gd$fullName']['$t'];
          }
          if (c['gd$email'] && c['gd$email'].length > 0) {
            r.email    = c['gd$email'][0]['address'];
            r.nickname = 
r.email;//c['gd$email'][0]['address'].split('@')[0];
          }
          if(c['link']){
            var photoLink = c['link'].filter(function (link) {
              return link.rel == 
'http://schemas.google.com/contacts/2008/rel#photo' && 
                     'gd$etag' in link; 
            })[0];
            if(photoLink) {
              r.picture = '/users/photo?l=' + 
encodeURIComponent(photoLink.href);
            } else if (r.email) {
              r.picture = gravatar.url(r.email, {
                s: 40, 
                d: 
"https://ssl.gstatic.com/s2/profiles/images/silhouette80.png"});
            }
          }
          return r;
        }).filter(function (u) {
          return !!u.email &&                  //we can only give access to 
persons with email at this point
                 !~u.email.indexOf('@reply.');  //adress with @reply. are 
usually temporary reply address for forum kind of websites.
        });

        res.json(users);
      });
  }

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to