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

101 lines
2.4 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 || {});