h-soft/telegram-bot

bot telegram

安装: 4

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

公开问题: 0

类型:yii2-extension

v0.0.1 2022-01-05 19:19 UTC

This package is auto-updated.

Last update: 2024-09-06 02:22:35 UTC


README

H-Soft/Telegram-Bot

Latest Stable Version Latest Unstable Version Total Downloads Daily Downloads

安装

安装此扩展的首选方法是通过 composer

运行以下命令之一

composer require h-soft/telegram-bot

或在您的 composer.json 文件的 require 部分添加以下内容

"h-soft/telegram-bot": "*"

可用方法列表

列出方法

SendMessage
CopyMessage
ForwardMessage
SendAudio
SendDocument
SendPhoto
SendVideo

用法

首先在 config.php 中添加

<?php
'components' => [
	'bot' => [
            'class' => 'h-soft\telegram\Telegram',
            'botToken' =>'bot-token',
        ],
]
?>

一旦安装了扩展,只需在您的代码中使用它即可

<?php 
  Yii::$app->bot
      ->SendMessage($chat_id,'TEST')(); 
?>

通过以下方式发送照片

<?php 
  Yii::$app->bot
      ->sendPhoto($chat_id,Yii::$app->getBaseUrl().'/uploads/test.jpg')
      ->caption('this is a caption')
      ->parse_mode('html')
      ->protect_content(true)
      ->allow_sending_without_reply(true)(); 
?>

在控制器中使用

首先,您需要在控制器中禁用 enableCsrfValidation 功能

机器人目前是从您的服务器运行的,但当我们在移动端的 telegram 应用中启动 /start 命令时,请求不会达到控制器中的动作,因为 telegram 将请求发送到 POST,而 yii 则没有 csrf 发送请求,导致 Bad Request (# 400)。因此,代码中的方法不会执行

以下是一个示例

class SiteController extends Controller
{
	public $enableCsrfValidation = false;

	public function actionIndex()
    {
        $res = Yii::$app->bot->sendMessage($chat_id,'Hello World H-Soft')();
       
    }
}

💡 示例代码

如何从机器人获取用户 chat_id?

您可以使用 $telegram->input->message->chat->id 获取 chat_id

示例小部件类

$res = Yii::$app->bot->sendMessage($bot->input->message->chat->id,"Hello QalandarDev")();