---
# System prepended metadata

title: Directus 使用教學

---

# Directus 使用教學
1. 點擊 GOSU BAR 左方清單「內容管理」>「登入Directus，管理你的內容」
 ![](https://i.imgur.com/CqlJoqZ.png)
 
   ![](https://i.imgur.com/K1Lz9sA.png)

3. 點擊 Directus 左方清單齒輪 ICON「管理者設定」 > 「集合與欄位」 
 ![](https://i.imgur.com/pJIgpF4.png)
   
   ![](https://i.imgur.com/DnaUiBS.png)


6. 點擊右上角藍色 + ICON「新建集合」
 ![](https://i.imgur.com/W53ipZU.png)

8. 集合名稱輸入 qa，把下方預設欄位都取消掉
 ![](https://i.imgur.com/606W86i.png)



10. 點擊 Translation + Create Item > 選擇一種語言:Taiwanese Mandarin(Taiwan) > 對應的欄位名稱: 問答機器人
  ![](https://i.imgur.com/xA4bfLp.png)

12. 新增欄位 > 文字輸入 > 名稱: question > 翻譯 + Create Item > 選擇一種語言:Taiwanese Mandarin(Taiwan) > 對應的欄位名稱: 題目 > 下一個 > 儲存
  ![](https://i.imgur.com/J63ejxv.png)
  
    ![](https://i.imgur.com/tKKgyNW.png)
    
    ![](https://i.imgur.com/l8x3pPO.png)

  
14. 以相同方式建立(答案:answer/錯誤選項1:option1/錯誤選項2:option2)
  ![](https://i.imgur.com/mvjNnP8.png)

16. 點擊左方集合: 問答機器人
17. 點擊右上角藍色 + ICON「新建資料」，輸入相關資料
  ![](https://i.imgur.com/JJPudLd.png)

    ![](https://i.imgur.com/RBmEerd.png)

# 流程
![](https://i.imgur.com/qn4TMof.png)


![](https://i.imgur.com/vwITwAo.png)
 - 排序欄位:? 代表隨機排列
   - 如果要按照其他資料排列可以直接輸入欄位名稱，例如: id
   - 如果要到序排列，可以輸入負號，例如: -id
   - 如果要多個欄位排序，可以用逗點隔開，例如 id,name

### 簡化物件結構 & 打亂選項 
```javascript=
// 原本的回傳的資料結構比較複雜，所以只取第一筆回傳值顯示
tmp.data = tmp.data.data[0];

// 將答案與錯誤選項合併再一起，並且透過隨機排序，把選項打亂
// 補充: 透過 Math.random 進行 sort 的隨機機率並不公平
// 可以參考 https://shubo.io/javascript-random-shuffle/
tmp.options = [tmp.data.answer, tmp.data.option1, tmp.data.option2];
tmp.options = tmp.options.sort(() => Math.random() > 0.5);
```

#### Directus 原始回傳結構
```json=
{
  "data": [
    {
      "question": "鐵達尼號郵輪是哪一年沈默的？",
      "answer": "1912年",
      "option1": "1913年",
      "option2": "1914年"
    }
  ],
  "total": 2
}
```

### 儲存答案
```javascript
tmp.data.answer
```

### 發送訊息
```
${tmp.data.question}
${tmp.options[0]}
${tmp.options[1]}
${tmp.options[2]}
```

### 等待回答
![](https://i.imgur.com/GtpvC1D.png)
 - 額外事件會等使用者觸發到此節點時才開始接收事件
 - 基本設定都會是 執行次數:1, 存活對象: 使用者, 執行模式: 獨佔

#### 虛線
在平台中，如果要等使用者進行下一個行為時將會用虛線顯示。
- 需要注意的是，在虛線前的暫存變數(tmp.xxx)、及對話內容(record.content)無法於虛線後使用

