我有一个Facebook 批处理请求,如下所示:
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)