4

У меня есть этот HTML по этому адресу: https://myapp.herokuapp.comпередать параметр в Facebook Page Tab приложение

<html> 
<body> 
<iframe frameborder=0 border=0 scrolling="no" src="<?php echo $_GET['url']; ?>" width="760px" height="521px"></iframe> 
</body> 
</html> 

Я создал Facebook страницы Tab, и я хочу, чтобы кто-нибудь может установить его на своей странице Facebook с другим URL , Поэтому, когда вы нажимаете на вкладку FB Page 1, будет отображаться встроенный URL1, FB будет отображать URL2 и т. Д. Таким образом, URL-адрес является параметром при установке вкладки «Страница».

Я попытался это:

https://www.facebook.com/dialog/pagetab?app_id=XXXXXXXXXX&next=https://myapp.herokuapp.com?url=HERE_YOUR_URL 

Он устанавливает приложение, но кажется, что параметр URL в IFRAME является пустым. Что я делаю не так?

Благодаря

+1

Следующий URL-адрес - это именно то место, куда вы переходите к следующему. Не установлен URL-адрес. Установленный URL-адрес - это тот, который определен в настройках приложения разработчика – WizKid

+0

Итак, если я хочу динамически создавать приложения с вкладками «Страница страницы», каждый из которых имеет другой параметр, я не могу этого сделать? – Arturo

+0

Я не думаю, что это возможно – Tobi

ответ

8

Мой подход немного отличается.

Хотя возможно установить приложения с параметрами URL-адресов, вы можете настроить их контент в зависимости от того, какая страница загружала их в первую очередь. В закладке Facebook API интеграция Руководство гласит:

Когда пользователь выбирает вашу вкладку, вы получите параметр signed_request с одним дополнительным параметром, страницы.Этот параметр содержит объект JSON с идентификатором (страницы идентификатор текущей страницы) (SOURCE)

Таким образом, вы бы установить же приложения на несколько страниц, а также использовать следующий код в верхней части (после того, как вы создали объект $facebook):

$page_id = ""; 
$sr = $facebook->getSignedRequest(); 
if($page = $sr['page']) { 
    $page_id = $page['id']; 
} 

Теперь вы должны быть в состоянии использовать $page_id в качестве уникального идентификатора говорит вам, какие страницы пользователь является текущим при просмотре приложения вместо переменной $_GET. Switch заявления или интеграция с базой данных - это первые методы, которые приходят на ум, но вы, похоже, спрашиваете, как идентифицировать и получить уникальный параметр, а не как использовать, поэтому я уверен, что вы это выясните самостоятельно. :)

Примечание: Это (очевидно) не будет работать на приложении, установленном на нескольких вкладках страниц той же странице, но это, похоже, не является проблемой для вас.

+0

Очень хорошо. Именно это я и собирался отредактировать свой ответ :-) – Tobi

+0

+1 - Это рекомендуемый метод в документах: https://developers.facebook.com/docs/appsonfacebook/pagetabs/#integrating – Igy

0

От моего понимания это не возможно, чтобы иметь на приложении, установленном в отдельных вкладках страницы. Для этого вам нужно создать для этого разные приложения, но вы можете использовать одно и то же местоположение «базового приложения» и увеличить местоположение с помощью необходимых параметров.

Например:

  1. Вы можете создать два приложения с "закладка" в качестве платформы.
  2. Для первого приложения, указать URL страницы Tab https://myapp.herokuapp.com/index.php?test=1
  3. Для первого приложения, указать URL страницы Tab https://myapp.herokuapp.com/index.php?test=2
  4. Создать в ваших приложениях в index.php базовую папку:

    <? echo $_GET["test"]; ?>

  5. Добавьте обе страницы с вкладками на страницу (или отдельные страницы). См: https://developers.facebook.com/docs/graph-api/reference/v2.0/page/tabs/#publish или https://developers.facebook.com/docs/reference/dialogs/add_to_page/

  6. Открыть первый Tab Page, затем второй, и видим, что результаты diffent параметров показаны
+0

Привет. Спасибо за Ваш ответ. Мне действительно нужно иметь одно приложение, я не могу позволить себе создавать сотни из них. Например, TwitterTab делает то, что мне нужно сделать, располагайте ваши личные данные на вкладке. https://www.facebook.com/ZapatosCastellano/app_142847962439861 Как я могу это сделать? – Arturo

+0

В Facebook Apps нет таких ограничений. Из личного опыта я знаю, что приложение может быть установлено на нескольких страницах, у меня было 3+. Из-за того, что «от моего непонятного ...», я не вижу причин, чтобы уменьшить это. – Fredrik

+0

Я имел в виду одно приложение на нескольких вкладках страницы одной и той же страницы ... И он хочет передать параметр URL. Как бы вы это сделали? – Tobi