How can I get the credential secret in Meteor, when I do Facebook.requestCredential on the client? -



How can I get the credential secret in Meteor, when I do Facebook.requestCredential on the client? -

i'm trying implement login/link business relationship scheme 1 in question. (scroll downwards says "methods explicit associations")

you used able user's login info this: data = package.facebook.facebook.retrievecredential(token).servicedata

now looks retrievecredential(token, secret). here's commit happened.

i life of me can't figure out how credential secret on server after call:

package.facebook.facebook.requestcredential( requestpermissions: accounts.ui._options.requestpermissions["facebook"] , (token) -> meteor.call "useraddoauthcredentials", token, meteor.userid(), service, (err, resp) -> if err? meteor.usererror.throwerror(err.reason) )

turns out can @ moment (on client):

service = "facebook" package.facebook.facebook.requestcredential( requestpermissions: accounts.ui._options.requestpermissions["facebook"] , (token) -> secret = package.oauth.oauth._retrievecredentialsecret(token) meteor.call "useraddoauthcredentials", token, secret, service, (err, resp) -> if err? meteor.usererror.throwerror(err.reason) )

then on server you'll need secret access service info user.

useraddoauthcredentials: (token, secret, service) -> services = meteor.user().services servicesearch = {} info = {} switch service when "facebook" if not services.facebook? info = package.facebook.facebook.retrievecredential(token, secret)?.servicedata services.facebook = info servicesearch = {"services.facebook.id": services.facebook.id} else throw new meteor.error(500, "you have linked facebook business relationship email #{services.facebook.email}...") olduser = meteor.users.findone(servicesearch) if olduser? throw new meteor.error(500, "your #{service} business relationship has been assigned user.") meteor.users.update(@userid, {$set: {services: services}}) if data.email? if not _.contains(meteor.user().emails, data.email) meteor.users.update(@userid, {$push: {"emails": {address: data.email, verified: true}}})

those functions user's service info can link multiple accounts, or whatever want them.

facebook-graph-api meteor facebook-oauth

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -