iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0

今天不寫程式,先來看看官方的機器人範例

官方範例

完整程式碼:https://core.telegram.org/bots/samples/hellobot

關於「函式」的細節以後還會提到,今天只需要了解它是什麼功能就行了


  1. 語句 <?php

    程式從裡這開始
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916hPyW7ZFcAX.png


  1. 常數 BOT_TOKEN 與 API_URL

    設定 token,紅框裡是要改成你的 token 的意思,用來與 TG 伺服器溝通,還有證明這隻機器人是你的
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916deg9ugxV5W.png


  1. 函式 apiRequestWebhook

    這坨東東是一個「函式」,你可以當作是一個小程式,或是一個叫做 apiRequestWebhook 的指令,用來在 Webhook 模式時發送回應(response)給 TG 伺服器,Day02 - Telegram 聊天機器人原理 機器人發送訊息的第三種方式,可以看到第 24 行有個 echo,echo 就是回應的意思
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916SeVd5vZEtE.png


  1. 函式 exec_curl_request

    發送請求(request)後,處理 TG 伺服器回應(response)的函式
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916wzx9LBQRQb.png


  1. 函式 apiRequest

    Day02 - Telegram 聊天機器人原理 機器人發送訊息的第一種方式,發送 GET 請求(request)
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916EzDVHQJEyc.png


  1. 函式 apiRequestJson

    Day02 - Telegram 聊天機器人原理 機器人發送訊息的第二種方式,發送 POST 請求(request)
    https://ithelp.ithome.com.tw/upload/images/20210917/201329166NJ2ONJN74.png


  1. 函式 processMessage

    處理接收到的訊息的函式,這邊可以看到他用了三種方式發送訊息的函式
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916FE0136PZYh.png


  1. 常數 WEBHOOK_URL

    用來設定或取消 Webhook,讓你用程式的方式設定

    這樣有個好處,不會在瀏覽器的紀錄裡留下 token,讓你的 token 不容易外流
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916wUaitXI8d4.png


  1. 接收 POST 資料 - file_get_contents("php://input")

    這邊是 Webhook 模式時接收訊息用的(TG 伺服器主動發請求(request),我們是被動接收),接收後用 processMessage 處理
    https://ithelp.ithome.com.tw/upload/images/20210917/20132916NdbWwPGiTH.png


  1. 沒有 ?>

    這個是程式結束的意思,如果後面沒有其他文字時,強烈建議省略,可以避免不必要的輸出

    stackoverflow:https://stackoverflow.com/questions/3219383/why-do-some-scripts-omit-the-closing-php-tag


結尾

看完上面各個區塊的說明,你會發現官方範例是要在 Webhook 下運作的,不過這些函式都是能在 CLI 模式下跑的,明天我們就來用程式接收和發送訊息,並且把官方範例改成 Long Polling 模式!


上一篇
【PHP Telegram Bot】Day07 - 安裝 VS Code 並撰寫第一支程式
下一篇
【PHP Telegram Bot】Day09 - 用 PHP 主動接收和發送訊息吧!
系列文
用 PHP 打造專屬於自己的 Telegram 聊天機器人吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言