【PHP Telegram Bot】Day08 - 官方范例程序

今天不写程序,先来看看官方的机器人范例

官方范例

完整程序码: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 模式!


<<:  Day.4深入理解连结之Object file

>>:  JavaScript Day02 - 变数(1)

[Day 12] 列表渲染v-for

今天我们会简单讲解一下v-for的功能,废话不多说,直接开始吧!! v-for 当HTML有一些重复...

[Day15] Webpack 入门 - 前端三本柱

Webpack 一开始只认识 JavaScript,当引入其他语言(如:css)撰写的档案时就会出现...

[Day29] Template Driven Form

昨天我们完成了 service 的部分,已经可以用程序码打 API 来做 CRUD,但是我们还没有准...

第六章 之七

在使用wordpress免不了要接触plugin的,既然如此就来看一下有甚麽好用的外挂可以使用;先前...

[Day18] Andoroid - Kotlin笔记: sealed class

注: 什麽是sealed class? sealed class类似於enum class,用来列举...