node.js - How to get Google contacts without access token? -


updated

i got answer still of access token :)

and going mention it.

i using google contacts api user contacts.

i using passport.js login google , of passport's access token calling api

https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token

and getting contacts

but need use else instead of access token secret key or client key.

because every time need log in google syncing contacts if user added newly contact.

i did google didn't solution.

any idea helpful me.

here code contacts

  var getgooglecontacts = function(token, userid) {         var url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token;         request(url, function(error, response, body) {             if (error) {                 console.log(error);             } else {                 var contacts = json.parse(body);                 savegooglecontacts(userid, contacts);             }         });      };      /*get contacts , store in user_contact table*/     var savegooglecontacts = function(userid, contacts) {         var gcontacts = [];         contacts.feed.entry.foreach(function(contact, index) {             if (contacts.feed.entry[index].gd$email) {                 gcontacts.push([                     null, null, contacts.feed.entry[index].title.$t, "'" + contacts.feed.entry[index].gd$email[0].address + "'",                     1, userid, 0                 ]);             }         });         if (gcontacts.length > 0) {             user.insertcontacts(gcontacts, function(err, result) {                 if (err) {                     console.log(err);                 } else {                     console.log('contacts saved: ' + result);                 }             });         }else{             console.log('no records available');         }     };  

here got answer.

as mentioned using passport.js log in google

and during log in process passport provides access token , refresh token default refresh token null.

if want refresh token need pass parameter accesstype:offline during authentication process, this

app.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email','https://www.google.com/m8/feeds'],accesstype: 'offline', approvalprompt: 'force' }));

after you'll refresh token , store in permanent place since not expire , can use whenever want access token

to access token using refresh-token module.

after gertting token need call api contacts.

like this

var url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token;         request(url, function(error, response, body) {             if (error) {                 cb(error);             } else {                 var contacts = json.parse(body);                 cb(null, contacts);             }         });     } 

that's it.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -