2010-09-22 1 views
5

Прежде всего извиняюсь за длину этого вопроса и за вопрос о API Facebook (по-видимому, один из самых непоследовательных API в мире ...).Как сделать любой тип обмена информацией со вкладки Facebook?

Ситуация: Мы создаем страницу для сообщества пользователей сообщества «Facebook», в которой представлены стандартные вкладки Facebook, в одном из которых встроена флеш-игра. В конце этой игры мы хотели бы поделиться окончательным счетом пользователей через стену, а также пригласить друзей, чтобы оспорить счет.

Во-первых - клиент настаивает на том, что игра появляется на вкладке внутри страницы, поэтому перенос всего этого в приложение (например, apps.facebook.com), к сожалению, не является вариантом. Я знаю, что вы можете встраивать приложение на вкладку вместо статического FMBL, но я пробовал это, и результат по существу тот же или не сработал (вкладка накладывает строгие ограничения на то, что можно визуализировать, принудительное использование FBML и отрицание FB:Iframe тег для стартеров).

В настоящее время мы вставляем эту игру на статическую вкладку FBML, используя тег fb:swf и FBJS-мост, чтобы включить некоторое простое взаимодействие на вкладке (переход в новое окно и т. Д.). Мы также попробовали подход внедрения FBJS и добавили игру в приложение и добавили это как вкладку на странице. Во всех случаях, кажется, нет способа получить UID пользователя просмотра в среде вкладки (несмотря на то, что они должны быть зарегистрированы для просмотра страницы в первую очередь). Сама игра - Flash ActionScript 3, и у меня есть возможность использовать API ActionScript 3 для Facebook. Используя этот подход, лучший способ я сумел придумать до сих пор приводится ниже:

0) Создать отдельное приложение с единственной целью борьбы с обменом баллов и т.д.

1) пользователь щелкает «Поделитесь своим счетом» в конце игры на странице TAB.

2) SWF выполняет стандартный запрос на вход в систему Facebook, открывая новую вкладку.

3) Пользователь подтверждает это действие и закрывает новое окно.

4) Пользователь еще раз щелкает в флэш-игры, чтобы подтвердить, что они вошли в систему.

5) SWF выполняет facbook.verifySession() и открывает еще одно окно с просьбой разрешить размещать на стене пользователей.

6) Пользователь подтверждает это и снова возвращается к игре.

7) SWF прослушивает «FacebookEvent.PERMISSIONS_CHANGED» и отправляется на стену после подтверждения.

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

ответ

1

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

+0

Если это не сработает, я бы предложил использовать iframe-приложение (можно включить вкладку) и с помощью js sdk выполнить вызовы на график api со вспышки. Должно быть довольно легко сделать вызовы в контексте пользователя без каких-либо проблем. – Jason

0

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

EDIT:

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

+0

Благодарим за ответ, но мне нужно иметь возможность вызвать эту функциональность из флэш-приложения. Мне было интересно, можно ли сделать такую ​​же функцию через звонок FBJS? Это было бы лучшим решением для меня, но я не видел, что это было сделано – bharling

+0

@bharling Я обновил свой ответ. – Bot

+0

@bharling: Ответ на jostster работает для вас? Меня тоже интересует решение. – goliatone