Во-первых, извиняюсь за длину этого вопроса и за вопрос об API Facebook (по-видимому, один из самых противоречивых API в мире ...).
Ситуация:
Мы создаем для нашего клиента продукт типа Facebook для сообщества, в который входят стандартные вкладки Facebook, в одну из которых встроена Flash-игра. В конце этой игры мы хотели бы иметь возможность поделиться итоговым счетом пользователей через настенную запись, а также пригласить друзей оспорить счет.
Во-первых, клиент настаивает на том, чтобы игра появлялась на вкладке на странице, поэтому перенос всего этого в приложение (например, apps.facebook.com
), к сожалению, не вариант. Я знаю, что вы можете встроить приложение на вкладку вместо статического FMBL, но я попробовал это, и результат, по сути, тот же или не получился (вкладка накладывает жесткие ограничения на то, что может быть отображено, принудительно применяя FBML и отрицая FB:Iframe
тег для начинающих).
В настоящее время мы встраиваем эту игру на статическую вкладку FBML, используя тег fb:swf
и FBJS-bridge, чтобы обеспечить простое взаимодействие на вкладке (переход в новое окно и т. Д.). Мы также попробовали подход FBJS для встраивания, превращения игры в приложение и добавления его в качестве вкладки на странице. Во всех случаях, кажется, нет никакого способа получить UID просматривающего пользователя, когда он находится в среде вкладок (несмотря на то, что они должны войти в систему, чтобы увидеть страницу в первую очередь). Сама игра представляет собой Flash ActionScript 3, и у меня есть возможность использовать API-интерфейс Facebook ActionScript 3. Используя этот подход, лучший процесс, который мне удалось придумать, описан ниже:
0) Создайте отдельное приложение с единственной целью - делиться счетами и т. Д.
1) Пользователь нажимает кнопку «Поделиться счетом» в конце игры на странице вкладки.
2) SWF выполняет стандартный запрос Facebook «войти в приложение», открывая новую вкладку.
3) Пользователь подтверждает это действие и закрывает новое окно.
4) Пользователь снова нажимает во Flash-игре, чтобы подтвердить, что он вошел в систему.
5) SWF выполняет facbook.verifySession()
и открывает еще одно окно, запрашивающее разрешение на публикацию на стене пользователя.
6) Пользователь подтверждает это и снова возвращается в игру.
7) SWF прослушивает «FacebookEvent.PERMISSIONS_CHANGED» и публикует на стене, как только это подтверждается.
Поскольку нет способа проверить, добавил ли пользователь приложение при загрузке в него вкладки, вероятно, ему придется следовать этому процессу каждый раз, когда он хочет опубликовать результат из игры, что является отвратительным. Основная проблема заключается в том, что любой RIA , находящийся на вкладке Facebook, не получает полезной информации в токене OAuth для этой вкладки, в отличие от RIA, расположенного на apps.facebook.com
, который получает всю информацию, которая мне нужна. заголовки запроса.
Проще говоря, мне нужен самый простой и простой способ сделать пост на стене Facebook из вкладки страницы продукта Facebook, будь то использование FMBL, FBJS, ActionScript 3, ASP или любой их комбинации.
Я видел это: https://stackoverflow.com/questions/3674923/facebook-share-or-publish-dialogue-from-page-tab-closed, это действительно тот же вопрос, который я задаю, но ответ неясен, и не похоже, что это решит мою проблему.