为什么当我尝试从 LinkedIn 检索个人的电子邮件地址时 curl 不起作用
Why is curl not working when I attempt to retrieve the email address of an individual from LinkedIn
我目前正在开发一款允许用户通过 LinkedIn 登录的应用程序。我想获取用户的电子邮件,目前正在首先使用 curl 通过终端对其进行测试。从 LinkedIn 的 API 文档我知道我需要从这个 url:
https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
获取用户的电子邮件。我已经请求我的用户允许检索他们的电子邮件地址。 curl命令我运行如下:
curl https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) -H "Authorization: Bearer access_token"
其中 access_token 实际上是实际的访问令牌。然而,每次我在终端上 运行 时,我总是得到这样的回应:
[1] 31166
zsh: no matches found: https://api.linkedin.com/v2/emailAddress?q=members
zsh: unknown file attribute: h
[1] + exit 1 curl https://api.linkedin.com/v2/emailAddress?q=members
考虑到我的请求,这很奇怪:
https://api.linkedin.com/v2/me
工作得很好。有谁知道这可能是什么原因造成的?
URL 中的 &
被解析为 shell 运算符,运行 curl
在后台解析。您需要转义它,这最容易通过引用整个 URL.
curl 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))' \
-H "Authorization: Bearer access_token"
更完整的,将&
解析为命令终止符后,有如下两条命令:
curl https://api.linkedin.com/v2/emailAddress?q=members &
projection=(elements*(handle~))' -H "Authorization: Bearer access_token"
在这两种情况下,您的字符都会导致 zsh
尝试生成文件名。
?
在第一个
*
秒
第一个命令在后台运行,并立即失败,因为 zsh
将不匹配的模式视为错误,而不是像 bash
默认情况下那样的文字文本。
第二个命令甚至在尝试匹配之前就失败了。 (
引入了一系列 glob 限定符,但 h
不是公认的限定符。
我目前正在开发一款允许用户通过 LinkedIn 登录的应用程序。我想获取用户的电子邮件,目前正在首先使用 curl 通过终端对其进行测试。从 LinkedIn 的 API 文档我知道我需要从这个 url:
https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
获取用户的电子邮件。我已经请求我的用户允许检索他们的电子邮件地址。 curl命令我运行如下:
curl https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) -H "Authorization: Bearer access_token"
其中 access_token 实际上是实际的访问令牌。然而,每次我在终端上 运行 时,我总是得到这样的回应:
[1] 31166
zsh: no matches found: https://api.linkedin.com/v2/emailAddress?q=members
zsh: unknown file attribute: h
[1] + exit 1 curl https://api.linkedin.com/v2/emailAddress?q=members
考虑到我的请求,这很奇怪:
https://api.linkedin.com/v2/me
工作得很好。有谁知道这可能是什么原因造成的?
URL 中的 &
被解析为 shell 运算符,运行 curl
在后台解析。您需要转义它,这最容易通过引用整个 URL.
curl 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))' \
-H "Authorization: Bearer access_token"
更完整的,将&
解析为命令终止符后,有如下两条命令:
curl https://api.linkedin.com/v2/emailAddress?q=members &
projection=(elements*(handle~))' -H "Authorization: Bearer access_token"
在这两种情况下,您的字符都会导致 zsh
尝试生成文件名。
?
在第一个*
秒
第一个命令在后台运行,并立即失败,因为 zsh
将不匹配的模式视为错误,而不是像 bash
默认情况下那样的文字文本。
第二个命令甚至在尝试匹配之前就失败了。 (
引入了一系列 glob 限定符,但 h
不是公认的限定符。