用捷徑取得網頁內容與呼叫 API

專家 依官方資訊整理 iPhone · 圖文 9 分鐘 · 更新 2025/6/24
iLab學校技術長進階技術・終端機・系統維修・依官方資訊整理
已有 4,489 人學會這個技巧
簡報模式
在 iOS 17 以上,你可以用捷徑的『取得 URL 的內容』動作直接抓取網頁 HTML 或呼叫 REST API,再搭配『從輸入取得文字』、『從 JSON 取得字典值』解析回傳資料,整合到任何工作流程中。

開始前

適用系統iOS 17 以上
字級

門市裡會問捷徑能不能「自動抓網路上的資料」的,通常是兩種人:一種想做個人化的小工具,每天早上看一眼匯率、新聞標題;另一種是已經在玩 n8n、Webhook,想用手機隨手戳一下後端。兩邊我都會先講同一句話:捷徑的網路能力,遠不只是「打開網頁」這麼簡單。

真正的關鍵動作叫『取得 URL 的內容』。它能發 GET、POST 請求到任何 REST API,能帶 JSON body、能自訂 HTTP Header(包含 Authorization),回來的 JSON 或 HTML 還能交給後面的動作繼續處理。整套流程不裝 App、不架伺服器,就在捷徑裡跑完。我自己在櫃檯最常拿來示範的,是接下來這三個例子。

iOS 17 以上才有完整的彈性,這點先記著——下面提到的「任意 Header」「點式路徑取值」這些,都是這版之後才順手的。

你大概會用到這幾塊積木

在動手前先認個臉。實際拼起來,這五個動作幾乎涵蓋八成的網路捷徑:

動作它在幹嘛
『取得 URL 的內容』發出 HTTP 請求、收回應,主角
『從輸入取得文字』把回應從二進位轉成純文字
『從 JSON 取得字典值』解析 JSON、挑出你要的欄位
『如果』判斷 API 回得正不正常
『重複每個項目』一次處理 JSON 陣列裡的多筆資料

第一個例子:抓即時匯率

這是我最愛拿來開場的,因為效果立竿見影,五個動作就跑完。我們呼叫免費的 Open Exchange Rates,拿 USD 換 TWD 的即時匯率。

先打開「捷徑」App,右上角點 + 開一個空白捷徑,搜尋並加入『取得 URL 的內容』。URL 欄位填:

https://open.er-api.com/v6/latest/USD

方法維持 GET 就好,這支 API 免費、不用金鑰,所以連 Header 都不用碰。

接著解析回來的 JSON。加入『從輸入取得文字』,來源選上一步的「URL 的內容」;再加一個『從 JSON 取得字典值』,Key 直接填:

rates.TWD

這種點式路徑(dot notation)在 iOS 17 的字典動作是原生支援的,可以一路鑽到深層的值,不必一層一層拆——這也是為什麼我會強調系統版本。

最後別忘了防呆。在解析那步之前先塞一個『如果』,條件設成「URL 的內容」→「不包含」→ "rates"。回傳異常時(也就是條件成立),就『顯示提示』寫「API 回應異常,請稍後再試」,再接『結束捷徑』;否則才往下解析。一切正常的話,在區塊最後放一個『顯示提示』:

目前 1 USD = 字典值 TWD

把那個「字典值」換成剛才取到的變數就成了。

進階玩法想一次看好幾種貨幣,把上面的 Key 改成 rates,用『取得字典值』拿回整包貨幣字典,再丟進『重複每個項目』。迴圈裡用『如果』只留 TWD、JPY、EUR,逐筆寫進一個文字變數,最後統一顯示——一眼掃完三國匯率。

第二個例子:抓 RSS 的最新三則標題

RSS 是 XML,偏偏捷徑沒內建 XML 解析器。這時候我會繞個路:借一個 RSS-to-JSON 的轉換服務,把它變成捷徑吃得下的 JSON。

加入『取得 URL 的內容』,URL 填:

https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fedu.ilab.tw%2Frss.xml

那串 rss_url 後面就是你想追的來源網址,記得先做 URL encode。方法一樣是 GET

回來之後,先用『從 JSON 取得字典值』、Key 填 items,拿到整個文章陣列。再加『重複每個項目』,數量設 3,只取前三篇。迴圈裡放『從輸入取得文字』來源選「重複項目」,然後兩個『從 JSON 取得字典值』分別撈 titlelink。最後用『將文字附加到變數』,把結果累進一個叫 結果清單 的變數:

• 標題變數
  連結變數

跳出迴圈後,一個『顯示提示』、內容選 結果清單,三則最新標題就出來了。

有個坑要先講:rss2json.com 免費方案每天約一萬次請求的上限。如果這捷徑會被你瘋狂觸發,要嘛自己架一個轉換服務,要嘛在捷徑裡用文字比對手動撈 <title> 標籤,別把額度燒光了。

第三個例子:發 POST、帶 JSON Body

前兩個都是「拿資料」,這個是「送資料」。很多 API、像送訊息到 Webhook 或 n8n 工作流,都要 POST 加一包 JSON。

加入『取得 URL 的內容』,方法改成 POST。點「要求內文」選「JSON」,把欄位填進去,例如:

KeyValue
text來自「取得剪貼簿」的變數
sourceiOS Shortcuts
timestamp來自『格式化日期』的當下時間

選了 JSON,捷徑會自動幫你補上 Content-Type: application/json,不用手動加。要驗證身分的話,在「Header」區塊補一行:

KeyValue
AuthorizationBearer 你的API金鑰
別把金鑰寫死iOS 17 起,可以第一次執行時用『詢問輸入』搭『設定變數』把 Key 快取進全域變數;或者乾脆存進「備忘錄」、用『在備忘錄中尋找』取回。要更安全,就用捷徑的『儲存至鑰匙圈』,搭 Scriptable App 的 Keychain API。重點是別讓金鑰大喇喇躺在動作裡。

至於回應,捷徑其實拿不到 HTTP 狀態碼這點要先有心理準備。實務上兩條路:一是直接判斷回傳 JSON 裡的 statussuccess 欄位(多數 API 都有),二是用『如果』比對「URL 的內容」有沒有出現成功關鍵字:

如果「URL 的內容」包含 "ok" 或 "success"
  → 顯示「已送出!」
否則
  → 顯示「送出失敗,請檢查金鑰或網路」

卡關時先看這幾件事

最常被叫去櫃檯救的,是那句「無法完成操作」。十之八九逃不出三個原因:URL 裡有空格或特殊字元沒 encode(先用『編碼 URL』動作過一手再帶進去);API 只收 HTTPS,而捷徑不支援 HTTP 明文;或者回應太大、超過大約 5 MB 被截斷或報錯,這時改打回傳量小的端點,或加 ?limit=10 這類分頁參數。順帶一提,iOS 17 修了一些 TLS 憑證相容性的毛病,要是你在 iOS 16 卡在某支舊 API,升上去通常就通了。

需要登入、走 OAuth 的 API 也能做,但要看狀況。如果對方給的是長效的 Personal Access Token,直接貼進 Authorization Header 最省事。真要跑完整 OAuth 2.0,iOS 17 的捷徑可以先用『取得 URL 的內容』打 /oauth/token 換 Token、存進全域變數再用。只是 Refresh Token 自動續期得自己判斷到期時間,邏輯一複雜,我會建議改用 Scriptable App 跑 JavaScript、用 completion.complete(result) 把結果丟回捷徑——路徑是捷徑 →『執行 Script』→ 選「Scriptable」。

玩到這個程度,你大概已經把 iPhone 當成隨身的自動化終端在用了。如果手上的機器跑這些重一點的捷徑開始有點吃力,或你在考慮要不要換一台更撐得住的,歡迎用我們的選機小幫手挑一挑,也可以直接來店裡,我幫你把這幾個捷徑當場拼給你看。

這篇對你有幫助嗎?
延伸閱讀

相關教學

為你精選

猜你喜歡

外觀
點綴色