我正在试图弄清楚如何获取用户正在访问的Facebook页面当前标签的标签ID。
我在Facebook页面上安装了一个应用程序,我需要为每个实例保存设置。我已经发现你可以为安装该应用程序的页面获取一系列选项卡,但我无法弄清楚如何获取您所在的实际选项卡的选项卡ID。
关键是管理员可以使用单个后端保存他们已添加应用的每个标签的设置。我不确定您是否可以在同一页面上拥有一个应用的多个实例,但如果没有,我们会在iframe中拥有2-3个具有相同后端的重复应用。因此,我需要能够将应用程序安装识别为唯一 - 我可以通过使用页面ID和标签ID来确定应用程序的最佳方式。
我该怎么做?
更新:发现每个应用在一个页面上只能有一个实例。
有了这个,我开始使用这个解决方案(用'/ 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
作为实例ID。
答案 0 :(得分:2)
经过一些研究,我找到了通过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)).' -->';
}
显然,标签ID是网页ID和应用ID的组合,这意味着您无法将同一个应用安装到网页上的多个标签页。
我希望这对需要为Facebook页面上的标签找到唯一ID的人有所帮助。
答案 1 :(得分:1)
在facebook api中,当您想要更改tabname时,需要传递选项卡ID。见下面的例子。
使用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");
}
);
答案 2 :(得分:0)
Ok Calle感谢您的确认! 我试图弄清楚这一点......这很有意义......这就是为什么当你以编程方式为页面创建一个标签时,唯一的参数是app_id&amp;的access_token。 如果您尝试在同一页面上创建两次应用程序选项卡,您将获得“true”,在我看来,这意味着您将覆盖您创建的最后一个选项卡。
答案 3 :(得分:0)
Facebook会在您的应用的请求网址中添加signed_request参数。您可以解码此参数以获取页面ID,以及其他有用信息:
http://developers.facebook.com/docs/authentication/signed_request/