У нас в настоящее время есть находящееся в iframe приложение холста Facebook в работах. Часть холста хорошо работает и действительно не касается API Facebook вообще, так как нам действительно не нужны никакие полномочия от пользователей с точки зрения доступа к их социальному графику; данные, которые мы используем, прибывают полностью из за пределами Facebook.
То, что мы хотели бы сделать, позволяют пользователям добавлять версию FBML нашего приложения к их профилям как вкладка. Однако не ясно, как мы, как предполагается, идем о включении той функциональности с помощью текущих API Facebook.
Страница холста и настройки обратного вызова настраиваются и работающий правильно, и у нас в настоящее время есть имя вкладки и URL, настроенный в наших Параметрах настройки приложения (и удар вкладки URL непосредственно загрузит нашу минимальную тестовую страницу), но нет никакого очевидного способа предложить пользователям способность добавить эту вкладку к их профилям.
Наша начальная буква думала, был то, что мы должны будем добавить нашу собственную кнопку "Add Profile Tab" в xfbml, как упомянуто по http://wiki.developers.facebook.com/index.php/Fb:add-profile-tab
Но даже когда мы уменьшаем iframe до чего-то как скелеты как
xfbml элементу не удается представить. Safari и Chrome оба перечисляют следующую ошибку в консоли: "Небезопасный JavaScript пытается получить доступ к кадру с URL [наш URL приложения в Facebook] от кадра с URL [URL наши загрузки iframe из]. Домены, протоколы и порты должны соответствовать".
У нас действительно есть URL Подключения, указывающий на наше приложение на вкладке Connect страницы параметров настройки приложения. Файл xd_receiver.htm расположен в том же каталоге как iframe страница, и ее содержание
который, кажется, то, что рекомендует вся соответствующая документация. Браузер определенно загружает его, как проверено через соответствующие области отладки (веб-инспектор, поджигатель, и т.д.).
Таким образом, вопрос, действительно ли это - надлежащий способ идти о добавлении, "добавьте к функциональности" вкладки профиля к нашему приложению? Если так, как мы разрешаем междоменную ошибку? В противном случае, что мы должны делать вместо этого? Текущая документация, кажется, фокусируется в большой степени на API Графика и Аутентификации, ни одни из которых действительно упоминают вкладки профиля.
Оказалось, что
просто не отображается, если пользователь сначала не разрешил приложению подключаться к ним через что-то вроде
Убедитесь, что в настройках приложения установлены следующие параметры:
Запрос вкладки будет направлен на {URL-адрес обратного вызова холста} / {URL-адрес вкладки}. Тогда должно сработать что-то вроде этого: http://apps.facebook.com/fbrelll/xfbml/fb:add-profile-tab
Используется обновленный JS SDK. Я не могу размещать больше ссылок, но на сайте разработчика и в репозитории github есть полезная информация о SDK.