我目前正在使用 Facebook 的 FQL 做一些事情,并curl
在命令行上使用它来测试它的一些响应。我还用来export
将参数分开以便于编辑。但我做错了什么,而且我看不出是什么。
这会产生完美的结果(即使导出):
export FB_TOKEN="the_access_token"
curl -F access_token=$FB_TOKEN -F query="SELECT first_name FROM user WHERE uid=12345678910123" https://api.facebook.com/method/fql.query
但这确实搞砸了:
export FB_TOKEN="the_access_token"
export FB_QUERY="SELECT first_name FROM user WHERE uid=12345678910123"
curl -F access_token=$FB_TOKEN -F query=$FB_QUERY https://api.facebook.com/method/fql.query
并产生以下输出:
curl: (6) Couldn't resolve host 'first_name'
curl: (6) Couldn't resolve host 'FROM'
curl: (6) Couldn't resolve host 'user'
curl: (6) Couldn't resolve host 'WHERE'
curl: (6) Couldn't resolve host 'uid=100001273321556'
<?xml version="1.0" encoding="UTF-8"?>
(...further response that the request was invalid here...)
我没有看到任何我忘记逃跑的东西。为何curl
执意要把这些解释为主持人呢?
使用的软件版本:
curl 7.21.3; bash 4.2.8(1)
答案1
FB_QUERY
必须引用:
curl -F access_token=$FB_TOKEN -F query="$FB_QUERY" https://api.facebook.com/method/fql.query