【发布时间】:2011-11-22 13:07:03
【问题描述】:
我有一个Facebook batch request,看起来像这样:
https://graph.facebook.com/?access_token=ACCESS_TOKEN&batch=[{"method": "GET", "relative_url": "search?q=EMAIL@ADDRESS.COM&type=user"}]
通过网络发送返回:
{"error"=>0, "error_description"=>"batch parameter must be a JSON array"}
如果我删除&type=user,它可以正常工作(发回一个空数据数组)。我绝对确定 Facebook 没有正确解析 & 字符。我在某处在线阅读,我可以尝试将 & 符号编码为 %26,但是使用该替换似乎改为查询“EMAIL@ADDRESS.COM%26type=user”。如果你把参数的顺序颠倒过来,你就会明白我的意思了。
有什么想法可以让 Facebook 上的批处理请求解析器识别 & 符号,而无需提交永远无法修复的错误报告?
编辑:
我正在使用 URI.encode。这是确切的代码:
queries = email_array.map { |email| { :method => "GET", :relative_url => "search?q=#{email}&type=user" } }
route = "https://graph.facebook.com/?access_token=#{token}&batch=#{URI.encode(queries.to_json)}"
res = HTTParty.post(route)
【问题讨论】:
-
将 & 编码为 %26 正是正确的解决方案。如果您输入 "%26" 并且字面意思显示出来,那么其他东西已经自动为您编码 &。
标签: ruby-on-rails facebook-graph-api facebook-batch-request