Как сделать любой тип обмена информацией на вкладке Facebook? - PullRequest
5 голосов
/ 22 сентября 2010

Во-первых, извиняюсь за длину этого вопроса и за вопрос об 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, это действительно тот же вопрос, который я задаю, но ответ неясен, и не похоже, что это решит мою проблему.

Ответы [ 2 ]

1 голос
/ 27 октября 2010

SWF приложения-вкладки FB получают ключ сеанса во flashvars, который можно обменять на токен oauth!http://fraserhobbs.com/2010/07/flash-facebook-graph-api-in-tabs/ Действительно выручил меня.

0 голосов
/ 23 сентября 2010

Использование тега <fb:share> сделает все это за вас. Если вы не вошли в систему и нажали на ссылку <fb:share>, она попросит вас войти, если вы еще не приняли заявку, затем попросит вас принять ее, а затем опубликовать на своей стене то, что вы хотите , Я сделал это на своем сайте, чтобы делиться продуктами, а не играми, но это можно сделать все равно.

EDIT:

Ознакомьтесь с Graph API для публикации . Если вы используете вспышку, я бы рекомендовал использовать Facebook Flash SDK

...