【问题标题】:Laravel handle Telegram webhooksLaravel 处理 Telegram 网络钩子
【发布时间】:2021-11-02 15:18:38
【问题描述】:

我对 Laravel 还很陌生,最近我尝试创建一个 Telegram 机器人,它可以管理传入的消息并做出相应的回复。最初,我计划询问用户的姓名,并在机器人下次回复时使用他的姓名。

那么我该如何管理我已经成功设置的机器人的 webhook。

Route::any('/setWebhook', function () {
    $response = Telegram::setWebhook([
        'url' => 'https://57f7-2806-104e-c-5c3b-3dc7-3284-7383-e130.ngrok.io/NdqvlJstHyIUhmNyTZhCYTnoYxdGzoPcLCzDiMiH/webhook'
    ]);
    dd($response);
});

如何管理机器人的传入更新?我目前正在使用 irazasyed sdk。

【问题讨论】:

    标签: php laravel telegram


    【解决方案1】:
    1. 您需要使用数据库,这需要模型和迁移
    2. Telegram Bot API 会将 POST 请求发送到您的 webhook
    3. 你应该添加->middleware('api'),因为你会收到数据
    4. 使用file_get_contents('php://input') 获取更新,或使用库。

    对我来说,我使用SimpleBotAPI library

    SimpleBotAPI 中的简单代码:

    // Handle updates here
    class BotHandler extends UpdatesHandler
    {
        public function MessageHandler($message) : bool
        {
            // Do whatever:
            $this->Bot->SendMessage(['chat_id' => $message->chat->id, 'text' => 'new Message!']);
            return true;
        }
    }
    
    Route::post('/bot_webhook', function () {
        $Bot = new TelegramBot(env('BOT_TOKEN'), new BotHandler());
        $Bot->OnWebhookUpdate();
    })->middleware('api');
    

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2021-03-22
      • 2019-04-28
      相关资源
      最近更新 更多