Как я могу использовать FB.Connect.streamPublish в приложении iframe facebook? - PullRequest
2 голосов
/ 12 января 2010

Я делаю простое приложение для фрейма на Facebook. У меня есть следующий код для определения размера моего iframe:

FB_RequireFeatures(["Connect"], function(){
  FB.XdComm.Server.init('/xd_receiver.htm');
  FB.CanvasClient.startTimerToSizeToContent();
  FB.CanvasClient.syncUrl();
});

Я хочу добавить ссылку, которая будет отображать всплывающее окно, которое позволит пользователю разместить определенное приложением изображение / ссылку на стене пользователя. Чтобы все заработало изначально, я попытался использовать следующий код для события щелчка:

FB.Connect.streamPublish('');

Однако ничего не происходит. Я попытался добавить:

FB.init(<?=API_KEY?>, '/xd_receiver.htm');

оба внутри функции FB_RequireFeatures , до нее, после нее ... не повезло. Ничего не произошло. Ошибки не выбрасываются. Ничего такого. Есть идеи?

Ответы [ 4 ]

1 голос
/ 12 февраля 2010

Посетите эту страницу для получения подробных инструкций по настройке потоковой публикации с помощью приложений iFrame с использованием Connect:

http://thetechnicalexperience.blogspot.com/2010/02/how-to-use-fbconnectstreampublish.html

0 голосов
/ 10 февраля 2010

Вы должны установить свой URL для подключения, чтобы использовать библиотеки javascript. Попробуйте установить URL-адрес своей закладки на http://apps.facebook.com/yourapp и посмотрите, поможет ли это.

0 голосов
/ 10 февраля 2010

@ Cyphus

Да, когда я говорю «иду в приложение», я имею в виду переход на страницу приложения в Facebook (apps.facebook.com/myapp). В настоящее время мой URL обратного вызова установлен только на холст. Как только я попытался использовать URL-адрес обратного вызова для холста и URL-адреса подключения, каждый раз, когда я пытался перейти в приложение, вместо загрузки в iframe в Facebook, меня перенаправляли на сам реальный URL-адрес обратного вызова. Я не запрашиваю его напрямую с моего сервера, так как это несколько противоречит цели иметь приложение для Facebook.

0 голосов
/ 12 января 2010

Убедитесь, что у вас есть: (некоторые из http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site#Referencing_Facebook_Connect_on_Your_Site)

  • Создан xd_receiver.htm, и что он находится в корне вашего домена
  • Содержит FeatureLoader.js.php в верхней части ТЕЛА вашего документа
  • Добавлен JavaScript в вопросе (например, FB_RequiresFeatures и т. Д.) Внизу вашего документа

Пример кода, который в настоящее время работает нормально в моем приложении:

<script type="text/javascript">
   window.onload = function() {
        FB_RequireFeatures(["XFBML", "Connect"], function() {
           FB.Facebook.init("...my api key...","xd_receiver.htm");
           FB.CanvasClient.syncUrl();
        });
   };
</script>

Вы можете опустить "XFBML" из вызова FB_RequireFeatures, а также изменить путь на xd_receiver.htm, и он должен работать нормально.

Кроме того, дважды проверьте, что URL-адрес приложения для подключения (настроенный с помощью приложения для разработчиков в Facebook) указывает на родительский файл xd_receiver.htm. Итак, если ваше приложение размещено на http://www.mydomain.com,, то, глядя на примеры кода, ваш xd_receiver.htm будет иметь значение http://www.mydomain.com/xd_receiver.htm, и вы захотите иметь http://www.mydomain.com в качестве соединения URL.

Если это по-прежнему не работает, попробуйте установить Firebug (или аналогичный инструмент), чтобы взглянуть на сетевой трафик. Когда я заставлял это работать, API Javascript Facebook молча завершал работу, и только проверяя запросы, идущие туда-сюда, я обнаружил, что Facebook не понравился мой URL-адрес для подключения.

Чтобы проверить, что все работает, я хотел бы использовать

FB.Connect.streamPublish();

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

Наконец, есть много приложений Facebook на основе IFrame - если вы обнаружите одно, которое делает то, что вам нравится, вы всегда можете взглянуть на их Javascript, чтобы узнать, как они этого добились. Или, другими словами, Facebook полон примера кода приложения IFrame.

...