Skip to content

Instantly share code, notes, and snippets.

@Blackmist
Created May 15, 2013 19:08
Show Gist options
  • Save Blackmist/5586475 to your computer and use it in GitHub Desktop.
Save Blackmist/5586475 to your computer and use it in GitHub Desktop.
server side script for insert operation. Looks up authenticated user names.
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