Данные не форматируются как JSON - PullRequest
0 голосов
/ 29 августа 2011

Я делаю следующее в запросе Facebook:

function sendRequests() {
                FB.ui({
                method: 'apprequests',
                message: "You are invited to the surprise Birthday",
                data:{"board_id":<%=@board.id%>}

Когда я получаю объект запроса от пользователя, который принял приложение, я анализирую его как объект JSON следующим образом:

ActiveSupport :: JSON.decode (request_body.body)

Вся информация отформатирована как Hash в Rails, за исключением отправленных мной данных, которые выглядят следующим образом:

"data"=>"{\"board_id\":1}"

Я перепробовал все виды комбинаций, но они не будут преобразованы должным образом. Я что-то упустил или JSON, возвращенный API-интерфейсом на графике facebook, должен быть отформатирован по-другому?

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Попробуйте скопировать данные и проверить их вручную здесь: http://jsonlint.com/

Это помогло мне много раз.

0 голосов
/ 31 августа 2011

В итоге я сделал следующее:

В фейсбуке fb.ui

    FB.ui({
        method: 'apprequests',
    exclude_ids: <%=@invited_guests.map{|guest| guest.provider_user_id} %>,
        message: <%="'You are invited to the surprise Birthday board for #{@board.bp_name}'" %>,
             title: "Come celebrate with us",
    data: "board_id:<%=@board.id%>"

Затем в контроллере после запроса в фейсбуке принято:

request_content = ActiveSupport::JSON.decode(request_body.body)
      board = ActiveSupport::JSON.decode(request_content["data"])

Я должен расшифровать дважды.Один раз для всего запроса и второй раз для конкретных данных информация пройдена.Это может быть не красиво, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...