sintonia/legacy/public/js/airtime/common/facebook.js

89 lines
2.6 KiB
JavaScript

$(document).ready(function() {
$("#facebook-login").click(function() {
AIRTIME.facebook.promptForFacebookPage();
});
});
window.fbAsyncInit = function() {
FB.init({
appId : FACEBOOK_APP_ID,
xfbml : true,
version : 'v2.4'
});
};
var AIRTIME = (function(AIRTIME) {
//Module initialization
if (AIRTIME.facebook === undefined) {
AIRTIME.facebook = {};
}
var mod = AIRTIME.facebook;
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
mod.promptForFacebookPage = function() {
FB.login(function (response) {
if (response.authResponse) {
mod.getPagesOwnedByUser(response.authResponse.userID, response.authResponse.accessToken);
mod.addPageTab();
} else {
console.log('Authorization failed.');
}
}, {scope: 'manage_pages'});
}
mod.getPagesOwnedByUser = function(userId, accessToken) {
FB.api('/' + userId + '/accounts', function (response) {
console.log(response);
}, {access_token: accessToken});
}
mod.addPageTab = function() {
FB.ui(
{ method: 'pagetab' },
function (resp) {
console.log("response:");
console.log(resp);
var pageIdList = [];
var tabs = resp["tabs_added"];
if ((tabs != undefined) && (Object.keys(tabs).length > 0)) {
for (var pageId in tabs) {
pageIdList.push(pageId);
}
//POST these back to Airtime, which will then proxy it over to our social app. (multiple requests from Airtime)
$.post('facebook-tab-success', { "pages" : JSON.stringify(pageIdList) }, function() {
alert("Successfully added to your Facebook page!");
}).done(function() {
}).fail(function() {
alert("Sorry, an error occurred and we were unable to add the widget to your Facebook page.");
});
}
},
{
app_id: FACEBOOK_APP_ID,
//redirect_uri: 'https://localhost'
}
);
}
return AIRTIME;
}(AIRTIME || {}));