hellojs-xiaotian
Version:
A clientside Javascript library for standardizing requests to OAuth2 web services (and OAuth1 - with a shim)
50 lines (42 loc) • 1.26 kB
JavaScript
// Profile UI
// Displays the users profile details
// Listen to signin requests
hello.on('auth.login', function(r) {
// Get Profile
hello( r.network ).api( '/me' ).then( function(p) {
var label = document.getElementById(r.network);
label.innerHTML = "<img src='"+ p.thumbnail + "' width=24/>Connected to "+ r.network+" as " + p.name;
// On chrome apps we're not able to get remote images
// This is a workaround
if (typeof(chrome) === 'object') {
img_xhr(label.getElementsByTagName('img')[0], p.thumbnail);
}
});
});
// Intiate App credentials
hello.init({
google : CLIENT_IDS_ALL.google,
windows : CLIENT_IDS_ALL.windows,
facebook : CLIENT_IDS_ALL.facebook,
twitter : CLIENT_IDS_ALL.twitter
},{
scope : 'email',
redirect_uri: REDIRECT_URI
});
// Bind events to the buttons on the page
var b = Array.prototype.slice.call(document.querySelectorAll('button.profile'));
b.forEach(function(btn){
btn.onclick = function(){
hello(this.id).login();
};
});
// Utility for loading the thumbnail in chromeapp
function img_xhr(img, url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
img.src = window.URL.createObjectURL(this.response);
};
xhr.send();
}