开发者

Data not being formatted as JSON

开发者 https://www.devze.com 2023-04-01 14:05 出处:网络
I am doing the following in a Facebook Request: function sendRequests() { FB.ui({ method: \'apprequests\',

I am doing the following in a Facebook Request:

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

When I get the request object from the user who accepted the application I parse it as a JSON object as follows:

ActiveSupport::JSON.decode(request_body.body)

All of the information is formatted as a Hash should in Rails except for the data I sent in which looks as follows:

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

I have tried all kinds of combinations but it just won't convert properly. Am I missing something or does the JSON returned by the facebook graph api need to be formatted differently?


Try copying the data and validating it manually here: http://jsonlint.com/

It has helped me numerous times.


In the end I did the following:

In the facebook 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%>"

Then in the controller after the request is accepted in facebook:

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

I have to decode twice. Once for the whole request and the second time for the specific data information passed. It might not be pretty but it works.

0

精彩评论

暂无评论...
验证码 换一张
取 消