---
# System prepended metadata

title: Telegram
tags: [GSS, telegram]

---

Telegram
===
###### tags: `GSS` `telegram`
## 1.使用Telegram

(1) 需要建立一個 Telegram 的 bot

1. 建立 Telegram 的 bot 官方有一個專門的 bot 在處理 [BotFather](https://telegram.me/BotFather)
2. 加入 BotFather 之後請輸入 `/newbot` 他會請你輸入 bot 的名稱

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

3. 接下來會請你輸入 bot 的 username，在這邊請填入你的 bot 在 **ldl** 的 **bot id**

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

4. 完成後會顯示類似下面的畫面，請記住 BotFather 回覆的 **token**

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

5. 若是之後忘記 token，可以跟 BotFather 輸入 `token` 他就會顯示你的 bot 的 token
6. 設定bot在群組中的模式
    * 如果你想要 bot 在群組中可以直接接收到所有人的訊息的話，請到 [BotFather](https://telegram.me/BotFather) 輸入 `/setprivacy` 並將 privacy 設定為 Disable
    * 如果不想要 bot 在群組中一直回覆的話，一樣請到請到 [BotFather](https://telegram.me/BotFather) 輸入 `/setprivacy` 並將 privacy 設定為 Enable，這樣如果需要跟 bot 溝通，需要在文字前面加上 `/` bot 才會接收到訊息

(2) 註冊 Telegram Channel 所需要的設定

* token - 將 `步驟1` 取得的 token 填入 ldl 的 bot config 或是到 ldl admin 填入
```json
{
    ...,
    "channelHook": {
        "telegram": {
            "token": "[your token]"
        }
    }
}
```

(3) 設定 **webhook**
1. 在 ldl admin 新增一個 telegram 的 channel 並輸入 token
    ![](https://i.imgur.com/2Fs0H48.png)
2. 點擊存擋
    ![](https://i.imgur.com/mY363uc.png)

3. 按下`設定 webhook` 按鈕即可設定完成
![](https://i.imgur.com/8LjZI2s.png)
![](https://i.imgur.com/dN6PQaB.png)

## 2.Telegram 的使用限制
#### (1) 訊息格式的轉換

| Bot Framework Message | Telegram                                  |
| --------------------- | ----------------------------------------- |
| Text                  | Message                                   |
| Suggested Action      | keyboard button                           |
| Image                 | Image                                     |
| Audio                 | Audio                                     |
| Video                 | Video                                     |
| Hero Card             | Message                                   |
| Thumbnail Card        | Message                                   |
| SignIn Card           | Message                                   |
| Receipt Card          | N/A                                       |
| Animation Card        | Message                                   |
| Audio Card            | Audio                                     |
| Video Card            | Video                                     |
| Adaptive Card         | N/A                                       |


#### (2) 一般訊息的限制 (文字、圖片、聲音、影像)

* **文字**
    * text 最多 **4096** 個字
* **圖片** 
    * 圖片連結必須是有效的
    * Url 字數沒有限定，支援的協定：HTTP、HTTPS

#### (3) 卡片格式的限制

* **文字**
    * text 最多 **4096** 個字
* **圖片**
    * 圖片連結必須是有效的
    * Url 字數沒有限定，支援的協定：HTTP、HTTPS
    * 一張卡片只能有一張照片
* **按鈕數量**
    * 未限制
* **按鈕 Action**
    * ImBack (註1)
        * Button Label 字數未限制
        * payload 最多 **64** 個字
    * Postback 
        * Button Label 字數未限制
        * payload 最多 **64** 個字
    * URL
        * Button Label 字數未限制
        * Url 字數沒有限定，支援的協定：HTTP、HTTPS（此連結必須有效，否則顯示出來不會有連結的效果）

註1：ImBack 和 Postback 在卡片這邊都會被當做 PostBack 

* **Gallery** (多個卡片橫向擺置)
    * 不支援

#### (4) Quick Reply Message

* 支援以下按鈕 Action
    * ImBack (註2)
        * Button Label 字數未限制
        * payload 最多 **64** 個字
    * Postback 
        * Button Label 字數未限制
        * payload 最多 **64** 個字
    * URL
        * Button Label 字數未限制
        * Url 字數沒有限定，支援的協定：HTTP、HTTPS（此連結必須有效，否則顯示出來不會有連結的效果）

註2：ImBack 和 Postback 在卡片這邊都會被當做 ImBack 及顯示按鈕文字 


#### (5) 其他限制

* Telegram 不支援 `Adaptive Card`

詳細可以查看[Telegram 官方文件](https://core.telegram.org/bots/api#available-methods)

## 3.LDL 防火牆設定

Teams 發 request 到 LDL，ip 如下：

* 91.108.6.156 port 80 and 443

LDL 會發 request 到 Teams，domain 如下：

*  https://api.telegram.org port 80 and 443

