$(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 || {});