Laravel:Telegram SDK不能与Laravel 5.5一起使用

时间:2017-10-30 19:06:15

标签: php laravel telegram telegram-bot laravel-5.5

我有两个项目,我想使用this SDK。一个是Laravel 5.4,第二个是Laravel 5.5。 使用Laravel 5.4,消息发送顺利,但是使用Laravel 5.5,我收到以下错误: enter image description here

代码是:

use App\Http\Controllers\TelegramController;
.
.
.
TelegramController::sendNotification('contactMail', $params);

TelegramController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Telegram\Bot\Laravel\Facades\Telegram;

class TelegramController extends Controller {

    public function getHome()
    {
        return view('/');
    }

    public function getUpdates()
    {
        $updates = Telegram::getUpdates();
        dd($updates);
    }

    public static function sendNotification($type, $params){
        switch($params['subject']){
            case 'contact':
                $subject = 'Contact';
                break;

            case 'pricequote':
                $subject = 'PriceQuote';
            break;
        }
        switch($type){
            case 'contactMail':
                $message = 'New message from:: ' . $params['email'] . ". Subject: " . $subject;
        }
        Telegram::sendMessage([
            'chat_id' => 'mychatId',
            'text' => $message,
        ]);
    }
}

问题是什么?

修改

我忘记将这些行添加到config / app.php(谢谢你,金字塔先生)

现在我又出现了另一个错误,即它找不到TelegramOtherException。我重新安装了它,但我仍然收到错误:

enter image description here

1 个答案:

答案 0 :(得分:2)

检查您提到的文档,它建议通过composer

安装sdk的两种方法
{
    "require": {
      "irazasyed/telegram-bot-sdk": "^2.0"
    }
}

或者

composer require irazasyed/telegram-bot-sdk ^2.0

然后添加providers app/config.php

Telegram\Bot\Laravel\TelegramServiceProvider::class

然后Facadeapp/config.php

中是可选的
'Telegram'  => Telegram\Bot\Laravel\Facades\Telegram::class

最后通过以下任何一种方式发布

php artisan vendor:publish --provider="Telegram\Bot\Laravel\TelegramServiceProvider"

OR

php artisan vendor:publish

参考:Telegram SDK Bot

注意:在Laravel 5.5中,会自动检测到外墙,但我仍然建议进行交叉检查。