程式範例
用程式讀取 Watch 事件
不需要安裝 Watch SDK。以下範例只讀取事件,使用 Watch 顯示的網址及 events:read 金鑰。
一般使用者可先使用內建事件檢視器。下面供整合人員使用:先在可信任的本機環境設定 WATCH_URL 與 WATCH_API_KEY,前者不含 /viewer/ 或結尾斜線。不要把實際金鑰寫進程式碼。 先測試連線
Python 3:不需額外套件
import json
import os
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
base = os.environ["WATCH_URL"].rstrip("/")
key = os.environ["WATCH_API_KEY"]
request = urllib.request.Request(
base + "/v1/events?limit=10",
headers={"Authorization": "Bearer " + key},
)
opener = urllib.request.build_opener(
urllib.request.ProxyHandler({}), NoRedirect()
)
with opener.open(request, timeout=10) as response:
result = json.load(response)
print("HTTP", response.status, "events:", len(result["data"]))JavaScript:在可信任的後端執行
此範例需要支援 fetch 的 JavaScript 執行環境。不要將金鑰放入公開網頁的前端程式。
export async function readEvents(baseUrl, apiKey) {
const url = new URL(baseUrl);
url.pathname = url.pathname.endsWith("/") ? url.pathname.slice(0, -1) : url.pathname;
url.pathname += "/v1/events";
url.search = "?limit=10";
url.hash = "";
const response = await fetch(url, {
method: "GET",
redirect: "error",
signal: AbortSignal.timeout(10000),
headers: { Authorization: "Bearer " + apiKey },
});
if (!response.ok) throw new Error("Watch HTTP " + response.status);
return response.json();
}
const result = await readEvents(process.env.WATCH_URL, process.env.WATCH_API_KEY);
console.log("Events:", result.data.length);Windows PowerShell
$Headers = @{ Authorization = "Bearer $env:WATCH_API_KEY" }
(Invoke-WebRequest -UseBasicParsing -TimeoutSec 10 -MaximumRedirection 0 -Headers $Headers -Uri "$env:WATCH_URL/v1/events?limit=1").StatusCode確認結果
HTTP 200 或成功取得 JSON 表示網址與權限可用。事件數為 0 也屬成功;需要事件內容時,程式可讀取 result.data。401 請核對金鑰,403 請管理員確認權限與允許的區域網路。
以 OpenAPI 產生用戶端
也可下載公開 OpenAPI,交給你使用的客戶端產生工具。產生後確認服務網址是自己的 Watch,並只保留需要的事件讀取功能。 OpenAPI 與完整參考