簡體   English   中英

當我嘗試從 LinkedIn 檢索個人的 email 地址時,為什么 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嘗試生成文件名的字符。

  1. ? 在第一個
  2. *在第二個

第一個命令在后台運行,並立即失敗,因為zsh將不匹配的模式視為錯誤,而不是像bash默認情況下那樣的文字文本。

第二個命令在嘗試匹配之前失敗。 (引入了一系列 glob 限定符,但h不是公認的限定符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM