为什么使用此导出时curl 会失败?

为什么使用此导出时curl 会失败?

我目前正在使用 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

相关内容