今天不寫程式,先來看看官方的機器人範例
完整程式碼:https://core.telegram.org/bots/samples/hellobot
關於「函式」的細節以後還會提到,今天只需要了解它是什麼功能就行了
語句 <?php
程式從裡這開始
常數 BOT_TOKEN 與 API_URL
設定 token,紅框裡是要改成你的 token 的意思,用來與 TG 伺服器溝通,還有證明這隻機器人是你的
函式 apiRequestWebhook
這坨東東是一個「函式」,你可以當作是一個小程式,或是一個叫做 apiRequestWebhook
的指令,用來在 Webhook 模式時發送回應(response)給 TG 伺服器,Day02 - Telegram 聊天機器人原理 機器人發送訊息的第三種方式,可以看到第 24 行有個 echo
,echo 就是回應的意思
函式 exec_curl_request
發送請求(request)後,處理 TG 伺服器回應(response)的函式
函式 apiRequest
Day02 - Telegram 聊天機器人原理 機器人發送訊息的第一種方式,發送 GET 請求(request)
函式 apiRequestJson
Day02 - Telegram 聊天機器人原理 機器人發送訊息的第二種方式,發送 POST 請求(request)
函式 processMessage
處理接收到的訊息的函式,這邊可以看到他用了三種方式發送訊息的函式
常數 WEBHOOK_URL
用來設定或取消 Webhook,讓你用程式的方式設定
這樣有個好處,不會在瀏覽器的紀錄裡留下 token,讓你的 token 不容易外流
接收 POST 資料 - file_get_contents("php://input")
這邊是 Webhook 模式時接收訊息用的(TG 伺服器主動發請求(request),我們是被動接收),接收後用 processMessage
處理
沒有 ?>
這個是程式結束的意思,如果後面沒有其他文字時,強烈建議省略,可以避免不必要的輸出
stackoverflow:https://stackoverflow.com/questions/3219383/why-do-some-scripts-omit-the-closing-php-tag
看完上面各個區塊的說明,你會發現官方範例是要在 Webhook 下運作的,不過這些函式都是能在 CLI 模式下跑的,明天我們就來用程式接收和發送訊息,並且把官方範例改成 Long Polling 模式!