Created
May 15, 2013 19:08
-
-
Save Blackmist/5586475 to your computer and use it in GitHub Desktop.
server side script for insert operation. Looks up authenticated user names.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function insert(item, user, request) { | |
item.author = "Unknown"; | |
var identities = user.getIdentities(); | |
var url; | |
if (identities.google) { | |
var googleAccessToken = identities.google.accessToken; | |
url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + googleAccessToken; | |
} else if (identities.facebook) { | |
var fbAccessToken = identities.facebook.accessToken; | |
url = 'https://graph.facebook.com/me?access_token=' + fbAccessToken; | |
} else if (identities.microsoft) { | |
var liveAccessToken = identities.microsoft.accessToken; | |
url = 'https://apis.live.net/v5.0/me/?method=GET&access_token=' + liveAccessToken; | |
} else if (identities.twitter) { | |
var userId = user.userId; | |
var twitterId = userId.substring(userId.indexOf(':') + 1); | |
url = 'https://api.twitter.com/1/users/show.json?user_id=' + twitterId; | |
} | |
if (url) { | |
var requestCallback = function (err, resp, body) { | |
if (err || resp.statusCode !== 200) { | |
console.error('Error sending data to the provider: ', err); | |
request.respond(statusCodes.INTERNAL_SERVER_ERROR, body); | |
} else { | |
try { | |
var userData = JSON.parse(body); | |
item.author = userData.name; | |
request.execute(); | |
} catch (ex) { | |
console.error('Error parsing response from the provider API: ', ex); | |
request.respond(statusCodes.INTERNAL_SERVER_ERROR, ex); | |
} | |
} | |
} | |
var req = require('request'); | |
var reqOptions = { | |
uri: url, | |
headers: { Accept: "application/json" } | |
}; | |
req(reqOptions, requestCallback); | |
} else { | |
// Insert with default user name | |
request.execute(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment