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
Post a Comment