Почему нельзя публиковать результаты с помощью Scores API в Javascript? - PullRequest
3 голосов
/ 20 октября 2011

Я пишу библиотеку игр на javascript, которую хочу интегрировать с Facebook Scores.Игры, созданные с моей библиотекой, обычно запускаются на статических файловых серверах (то есть на обычном HTML + JS, без серверных сценариев).

Я просматривал документацию Score и наткнулся на эта проблема : вы можете отправить счет только с помощью токена доступа к приложению.

Почему?

Исправьте меня, если я ошибаюсь, но, похоже, я не могуполучить токен доступа к приложению, если у меня нет секрета приложения, и кажется очевидным, что я не должен помещать секрет приложения в javascript.Для большинства из этих игр о сценариях на стороне сервера не может быть и речи.Поэтому у меня нет способа получить токен доступа к приложению, поэтому ни одна из этих игр не может отправлять оценки.

Что особенно глупо, так это то, что если пользователь предоставляет приложению разрешение «publish_stream», вы можете автоматически сделать стенупост в духе «Я только что набрал 77777 в MySuperGame!».Вы можете сделать это с помощью чистого HTML + JS.Но вы не можете опубликовать счет.

Я что-то упустил или API немного туповат?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Поскольку клиент может отправлять любую информацию на сервер, хорошей идеей является не доверять ей. Поскольку оценки, как правило, являются способом объективно определить мастерство игрока, предоставление игроку возможности определить свой собственный счет напрямую подорвало бы функцию оценки. Таким образом, оценка определяется независимой стороной; сервер.

Если бы Facebook не требовал токена access_token, другим играм было бы очень трудно зафиксировать результаты. Вы могли бы попросить разработчиков Facebook SDK добавить небезопасную альтернативу Facebook SDK, но адаптировать ваши игры для использования безопасного метода, вероятно, проще.

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

Если об исключительных сценариях сервера действительно не может быть и речи, вы можете сократить его до одного сценария на сервере, который передает счет, отправленный клиентом в Facebook.

1 голос
/ 20 октября 2011

Если бы вы могли сделать это из javascript, тогда любой мог бы подделать свои результаты, просто запустив несколько команд через консоль.

Я не уверен, что по этой причине мы его не поддерживаем, но кажетсякак вероятный.

...