Получить идентификатор вкладки страницы Facebook текущей вкладки? - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь выяснить, как получить идентификатор вкладки текущей вкладки страницы Facebook, которую посещает пользователь.

Я сделал приложение для установки на страницах Facebook, для которого мне нужно сохранять настройки для каждого экземпляра. Я понял, что вы можете получить массив вкладок для страницы, на которой установлено приложение, но я не могу понять, как получить идентификатор вкладки для текущей вкладки, на которой вы находитесь.

Смысл в том, чтобы администратор мог сохранять настройки для каждой вкладки, к которой он добавил приложение, используя единый бэкэнд. Я не уверен, что у вас может быть несколько экземпляров одного приложения на одной странице, но если нет, у нас будет 2-3 дубликата приложений с одним и тем же бэкэндом в iframe. В связи с этим мне нужно иметь возможность идентифицировать установки приложений как уникальные - лучший способ понять это - использовать идентификатор страницы и идентификатор вкладки для приложения.

Как мне это сделать?

ОБНОВЛЕНИЕ: Обнаружено, что у вас может быть только один экземпляр для приложения на странице.

После этого я использовал это решение (с '/ tabs /' для получения информации о вкладке):

try { 
  $tab = $facebook->api('/'.$fb_page_id.'/tabs/'.$fb_app_id);
  $fb_tab_link = $tab['data'][0]['link'];
} catch (FacebookApiException $e) {
  echo '<!-- '.htmlspecialchars(print_r($e, true)).' -->';
}

В приведенном выше коде $fb_tab_link или комбинация $fb_page_id и $fb_app_id могут использоваться в качестве уникального идентификатора. Я решил использовать конкатенацию $fb_page_id . '-' . $fb_app_id в качестве идентификатора экземпляра.

Ответы [ 4 ]

2 голосов
/ 30 ноября 2011

После некоторых исследований я нашел вызов, чтобы получить информацию о вкладке через API.

try { 
  $tab = $facebook->api('/'.$fb_page_id.'/tabs/'.$fb_app_id);
  $fb_tab_link = $tab['data'][0]['link'];
} catch (FacebookApiException $e) {
  echo '<!-- '.htmlspecialchars(print_r($e, true)).' -->';
}

Очевидно, идентификатор вкладки представляет собой комбинацию идентификатора страницы и идентификатора приложения, что означает, что вы не можете установитьодно и то же приложение для нескольких вкладок на странице.

Надеюсь, это может быть полезно для тех, кому нужно найти уникальный идентификатор для вкладки на странице Facebook.

1 голос
/ 14 декабря 2011

В Facebook api, когда вы хотите изменить имя вкладки, вам нужно передать идентификатор вкладки. см. пример ниже.

Чтобы изменить имя вкладки с помощью Javascript SDK.

tab_id вашего приложения будет app_ [AppId].

FB.api([PageId]/tabs/[tab_id]', 'post', 
{access_token: [page access token], custom_name:[custom tab name]},
function(response){
if(respose == true)
console.info("Successfully done");
}
);
0 голосов
/ 28 января 2012

Facebook добавляет параметр signature_request к URL-адресу запроса вашего приложения.Вы можете декодировать этот параметр, чтобы получить идентификатор страницы, а также другую полезную информацию:

http://developers.facebook.com/docs/authentication/signed_request/

0 голосов
/ 02 декабря 2011

ОК, Калле, спасибо за подтверждение!Я тоже пытался выяснить это ... и это имеет смысл ... Вот почему, когда вы создаете программную вкладку для страницы, единственными параметрами являются app_id & access_token.Если вы попытаетесь дважды создать вкладку приложения на одной и той же странице, вы получите «true», что, по моему мнению, означает, что вы перезаписали последнюю созданную вкладку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...