[英]Why the PHP curl is not working? When it works from command line curl?
[英]Why is curl not working when I attempt to retrieve the email address of an individual from LinkedIn
我目前正在開發一個允許用戶通過 LinkedIn 登錄的應用程序。 我想獲得用戶的 email 並且目前正在通過終端首先使用 curl 對其進行測試。 從 LinkedIn 的 API 文檔中,我知道我需要從此 url 獲取:
https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
獲取用戶的 email。 我已經向我的用戶請求許可以檢索他們的 email 地址。 我運行的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
不是公認的限定符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.