我在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}"
我尝试了各种组合,但它不能正确转换。我错过了什么,或者facebook图表api返回的JSON需要格式化不同吗?
答案 0 :(得分:1)
尝试复制数据并在此处手动验证:http://jsonlint.com/
它帮了我很多次。
答案 1 :(得分:0)
最后我做了以下事情:
在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%>"
然后在Facebook中接受请求后在控制器中:
request_content = ActiveSupport::JSON.decode(request_body.body)
board = ActiveSupport::JSON.decode(request_content["data"])
我必须解码两次。一次针对整个请求,第二次针对特定数据信息传递。它可能不太漂亮,但它有效。