看了五天的 API 文件,想必是有點膩了,今天開始來做點實用的東西
首先來到 processMessage()
,來把之前的轉換 Markdown 加個條件,只處理 !md
開頭訊息
改完來試試看,確實有在運作
https://core.telegram.org/bots/api#message
new_chat_members 是 TG 伺服器傳過來的 message 中其中一個參數,他會在新成員加入時附在裡面,因為有可能一次進來很多個人,所以它是一個陣列,實際收到的訊息長這個樣子
要找到它其實滿容易的,就在 message 的第一層,然後要處理到每個人就要用 foreach
,還有如果是機器人的話就不處裡
這邊先在整個程式的最後面測試組合好的訊息
fixMarkdown()
是因為名字和 username 中會有奇怪的符號,導致被當成 Markdown 語法
具體是哪些符號官方文件有寫{chat_title}
{user_id}
{name}
{username}
這四樣東東是為了讓設定時比較方便,最後再用 str_replace()
換成變數
要注意的是除了小括號以內的網址,其他有半形符號的地方都建議加上反斜線 \
變成
打完程式就按下執行看看吧
如果有看到訊息就表示成功了
底下這則訊息是因為 .
沒加到反斜線 \
Request has failed with error 400: Bad Request: can't parse entities: Character '.' is reserved and must be escaped with the preceding '\'
貼進去之後要把四個東東填進去
群組的名稱
$message['chat']['title']
使用者的 uid
$new_member['id']
使用者的名字
因為「姓」跟「名」有可能不存在,不存在的話就換成空字串
($new_member['first_name'] ?? '') . ($new_member['last_name'] ?? '')
使用者的 username
跟名字一樣有可能不存在,如果存在就加上 @
還有小括號
isset($new_member['username']) ? '(@' . $new_member['username'] . ')' : ''
完成後就等待新成員加入吧