Как получить идентификатор страницы facebook внутри страницы вкладки вентилятора с помощью facebook javascript sdk

Я пытаюсь создать веб-приложение, создающее вкладки поклонников для страниц facebook...

моя проблема...

Я пробовал это: -

FB.api(
"/{page-id}/feed",
function (response) {
 if (response && !response.error) {
 /* handle the result */
 }
}

);

Как получить идентификатор страницы facebook внутри вкладки вентилятора страницы с помощью facebook javascript sdk?

это изображение, описывающее то, что я хочу сделать: http://www.wtttc.com/image.php?id=25

Я пробовал все, но не использовал: (

Благодарю вас

5 ответов

Чтобы получить идентификатор страницы страницы поклонника, вам нужно получить signed_request из Facebook. https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin На самом деле, эта ссылка говорит о странице кавалов, но это тот же принцип для страницы поклонника.

Но если вы внимательно посмотрите, как получить эту переменную, вы можете обнаружить, что

Подписанный запрос отправляется через HTTP POST на URL-адрес, заданный как ваш Canvas URL-адрес в панели приложений.

Это означает, что если вы хотите получить подписанные данные запроса, вы должны получить его через HTTP POST. Получить идентификатор страницы страницы поклонника невозможно, просто используя javascript. Javascript - это клиентский язык, поэтому вы не можете получить доступ к данным POST. Что вам нужно сделать, просто поместите ваш javascript-код в .jsp/.php/... или любую другую страницу на стороне сервера. Через страницу на стороне сервера вы получаете подписанный запрос и передаете его в код javascript. Вот пример в JSP:

<%String ************* = request.getParameter("signed_request");%>

И в вашем javascript просто расшифруйте строку, которую вы получили, и она будет содержать идентификатор страницы.

var ************* = global.*************;
 var data1 = *************.split('.')[1];
 data1 = JSON.parse(base64decode(data1));
 console.log(data1);

Затем вы можете получить такие данные:

Object {algorithm: "HMAC-SHA256", expires: 1404925200, issued_at: 1404921078, oauth_token: "**************************************************…Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD", page: Object…}

: "HMAC-SHA256" срок действия: 1404925200 Выпущено: 1404921078 oauth_token: "**************************************************FRfM1ln3x9pb7mLBujyug5iHUifSnyxmPHOLe030wI3H5DYXubnxbPhww9aipSnwoEr6lwctuQaGKxYvDBdZCNuFiaYIduORTWirmZC2rKL86Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD" страница: Объект Пользователь: Объект user_id: "1519950734891144" Прото: Объект

В объекте страницы вы можете найти идентификатор страницы.

Object {id: "1522695611287219", liked: true, admin: true}

О том, как декодировать подписанный запрос, вы можете увидеть эту ссылку https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin Точно так же.

Надеюсь, это поможет вам.


http://www.wtttc.com/image.php?id=25

window.top.location;

Доза не работает внутри вкладки страницы facebook... Я проделал это до и сейчас...

Любые новые идеи:)


Это проверенное решение, использующее SDK для Javascript Facebook и его недокументированный метод ******************.

Примечание. вам нужно будет использовать код сервера, и этот пример для PHP, но это самый легкий, который я смог узнать.

Ваша html-страница (или все, что вы обслуживаете):

.....


Вы должны получить signed_request POSTed для своего приложения со стороны сервера. https://developers.facebook.com/docs/pages/tabs Перейдите по ссылке, чтобы получить представление о вкладке страницы и идентификаторе страницы.


Вы можете использовать fql, чтобы получить все, что хотите. https://developers.facebook.com/docs/reference/fql/ Я думаю, это сработает для вас:

var currentPageID;
var url = window.top.location;
FB.api(
 {
 method: 'fql.query',
 query: "SELECT id FROM object_url WHERE url = '" + url + "'"
 },
 function(response) {
 currentPageID = response[0].id;
 }
);
alert(currentPageID);

licensed under cc by-sa 3.0 with attribution.