---
# System prepended metadata

title: TV 速報串接 Sendinblue 自動化使用說明

---

# TV 速報串接 Sendinblue 自動化使用說明

機制設計請參考 [Trello 卡片](https://trello.com/c/QodsUjrf)，大致上是提供一個 API 每次收到一則速報時就呼叫一次，系統會根據存放的設定決定要不要發、要怎麼發。並提供一設定頁面可以調整。

## Create Message

對以下路徑下 HTTP POST 在 payload 中帶 JSON

```
POST https://ems.freetv-app.com/sib/messages?key=<key>
api-key: <api-key>
Content-Type: application/json

{
    "name": "<string: 顯示在 sendinblue 後台的 Campaign 名稱>",
    "params": {
        "subject": "<string: 新聞標題>",
        "source": "<string: 新閱來源>",
        "content": "<string: ref 內新聞內文抓前 100 字再加 …>",
        "thumbnail": "<string: 圖片網址>",
        "url": "https://web.freetv-app.com/jp/email/open_app"
    }
}
```

其中

 - `<key>` 用來指定要使用哪組設定，目前有
     - `tv-jp-breaking-news-android`
     - `tv-jp-breaking-news-ios`
 - `<api-key>` 為固定字串，請找後端要

### 範例

```
POST https://ems.freetv-app.com/sib/messages?key=tv-jp-breaking-news-android
api-key: <api-key>
Content-Type: application/json

{
    "name": "速報測試 20220804-1",
    "params": {
        "subject": "山形‪･‬新潟などで記録的豪雨 最上川なども複数箇所で氾濫 被害情報まとめ",
        "source": "ニュースダイジェスト",
        "content": "(ref 內新聞內文抓前 100 字再加 …)",
        "thumbnail": "https://newsdigest.jp/media/articles/%E6%96%87%E5%AD%97%E3%81%AA%E3%81%97%E9%9B%B7%E9%9B%A8_jdJa9AA.png",
        "url": "https://web.freetv-app.com/jp/email/open_app?utm_source=sendinblue&utm_campaign=breaking&utm_medium=email&comment=一個手機版點了會開 app, 桌面版點了會開商店的網址"
    }
}
```

## Config

到 [白底設編輯器](https://internal-web.freetv-app.com/config-editor) 裡選擇 **emsSibMessageConfig** 以後找到對應的 Key 編輯

### 範例

```
{
  "key": "tv-jp-breaking-news-android",
  "createCampaignOnly": true,
  "quota": 1,
  "templateId": 151,
  "recipients": {
    "exclusionListIds": [],
    "listIds": [
      6
    ]
  },
  "tag": "速報",
  "excludeMessagesWithTexts": [
    "新型コロナ"
  ],
  "apiKeySuffix": "-hSMxIqcrGO1JntQm"
}
```

 - `key`: 設定檔 id, 發訊息時指定用
 - `createCampaignOnly`： 設定為 `true` 時只會建立 Campaign 但不會自動發送
 - `quota`： 目前還會自動發幾封以後才停止，停止後設重新設定為大於零的值才會繼續發
 - `templateId`: 使用的 templateId
 - `recipients.listIds`: 要發送的 `listId` 清單
 - `recipients.exclusionListIds`: 要排除的 `listId` 清單
 - `tag`: 指定 Sendinbe Campaign 的 tag
 - `excludeMessagesWithTexts`: 若收到的資料裡 `source` 或 `content` 包含指定的字串則不會發
 - `apiKeySuffix`: 工程端檢查資料用


## Operation

設定資料存放在 DynamoDB 的 `EmsSibMessageConfig` 表格中，其中 `{ key："_index" }` 的為特殊項目，用以決定在白底列表顯示的項目有哪些。

提供給前端的 `api-key` 的值為 Sendinblue 的 API Key 再經過加密後的結果，請參考 `emb-public-service` 中 `crypto.service.spec.ts` 測試檔執行產生。
