---
title: "API 觸發"
description: "EMILY.RPA API 觸發：讓機器人成為伺服器，提供 HTTP API 端點網址讓其他系統呼叫並執行指定技能。"
source: https://docs.emily.tips/trigger/api-trigger
---

# API 觸發
API 觸發是讓 EMILY.RPA 成為一台伺服器，提供端點網址讓其它系統以 HTTP API 觸發指定的技能，因此需要不會變動的 IP 地址或主機名稱，並確認發起請求的設備可以通過防火牆連到本機。

### 設定 API 伺服器

在「**全自動觸發**」功能頁點擊「**API 觸發**」。

![](https://docs.emily.tips/img/zh/api-trigger-01.png)

點擊界面下方的「**調整參數**」圖示帶出「**API Port**」對話框，API 伺服器預設 3000 阜號，如果跟其他伺服器衝突可以調整，例如 3002，然後按「**確定**」。

![](https://docs.emily.tips/img/zh/api-trigger-02.png)

### 將技能加入 API

在「**我的技能**」功能頁點擊想要觸發的技能帶出選單，選擇「**加入 API**」選項就可以將這個技能加入 API 服務的行列。

![](https://docs.emily.tips/img/zh/api-trigger-03.png)

### 測試 API

設定完成後，需啟動全自動模式，這時 API 伺服器才會開始運作。剛才設定的阜號結合 EMILY.RPA 所在電腦的 IP 地址可以形成端點網址，我們可以使用 [Postman](https://www.postman.com/) 這類型發送 API 的工具軟體來測試 API 觸發。首先我們可以按照剛才設定的阜號發送一個 `GET http://localhost:3002/api` 請求來驗證 API 伺服器有正常運行，成功的話應該會看到類似下圖的回傳結果，包含使用者帳號 `userId`，是否正在執行觸發工作 `executing`，等待的工作有幾個 `waiting`，以及完成的工作有幾個 `finished`。

![](https://docs.emily.tips/img/zh/api-trigger-04.png)

### 觸發技能

要觸發某個已加入 API 的技能需要技能識別碼 `uuid`，可以在進入全自動模式前的「**API 觸發**」頁找到。

![](https://docs.emily.tips/img/zh/api-trigger-05.png)

端點網址的 uuid 參數即為欲執行的自動化技能識別碼，例如：`GET http://ip-address:port/api?uuid=1a2b` 表示為請求 EMILY.RPA 執行識別碼為 1a2b 的自動化技能；若希望上傳自動化技能需要的檔案作為輸入，可以採用 `POST http://ip-address:port/api?uuid=1a2b` 並將輸入檔案以 multipart/form-data 上傳，下圖以 HTTP 工具 Postman 為例，發送請求執行技能「**查詢維基百科並匯出檔案**」，同時傳送 `keyword.txt` 與 `invoice.png` 兩個檔案到這個技能的工作資料夾，伺服器會回傳工作佇列序號 `msUnixTime` 作為後續查詢狀態的參數。

![](https://docs.emily.tips/img/zh/api-trigger-06.png)

### 詢問工作狀態

除了使用 `GET http://ip-address:port/api` 詢問工作佇列整體狀態外，也可以使用伺服器回傳的工作佇列序號 `msUnixTime` 查詢這個觸發技能的狀態。發送請求 `GET http://ip-address:port/api/job?uuid=1a2b&msUnixTime=1234` 來得到這個工作的目前狀態，狀態包括 inqueue / executing / finished：

![在等待中的工作](https://docs.emily.tips/img/zh/api-trigger-07.png)

![在執行中的工作](https://docs.emily.tips/img/zh/api-trigger-08.png)
