Comments (7)
@ranrinc
Hi
1- After setting up the package, create a controller, for example TelegramController.php
in you app/Http/Controllers
directory and put this in it:
<?php
namespace App\Http\Controllers;
use PhpTelegramBot\Laravel\PhpTelegramBotContract;
class TelegramController extends Controller {
public function set(PhpTelegramBotContract $telegram_bot) {
return $telegram_bot->setWebhook(url(config('phptelegrambot.bot.api_key') . '/hook'));
}
public function hook(PhpTelegramBotContract $telegram_bot) {
$telegram_bot->handle();
}
}
2- Now you need to write routes for these actions. so open your web.php
and write:
$router->group(['prefix' => '[YOUR BOT API KEY]', function() use ($router) {
$router->get('set', 'TelegramController@set');
$router->post('hook', 'TelegramController@hook');
});
replace [YOUR BOT API KEY] with the API key that BotFather has given you. This is to make secure the hook
url to ensure the incoming requests are from no one but Telegram.
3- Go to https://yoursite.com/[YOUR BOT API KEY]/set
You should see the success message.
4- Create a directory for your commands. It can be anywhere, for example app/Telegram/Commands/[CommandNameCommand].php
would be nice.
This is an example StartCommand.php
:
<?php
namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Request;
class StartCommand extends SystemCommand {
protected $name = 'start';
protected $usage = '/start';
public function execute()
{
$message = $this->getMessage();
$chat_id = $message->getChat()->getId();
$text = 'Hi! Welcome to my bot!';
$data = [
'chat_id' => $chat_id,
'text' => $text,
];
return Request::sendMessage($data);
}
}
5- The last thing you need to do is to add your custom commands directory to the bot's config. so open config/phptelegrambot.php
and add the commands directory to the array:
...
'commands' => [
'before' => true,
'paths' => [
base_path('/app/Telegram/Commands')
],
'configs' => [
// Custom commands configs
],
],
...
That's it all.
from laravel.
@pooriamo yeah... thank you so much.. finally someone explain.
from laravel.
@pooriamo thank you for the given example. Could you please send PR and add some examples in EXAMPLES.md or somewhere?
from laravel.
from laravel.
@ranrinc
Hi1- After setting up the package, create a controller, for example
TelegramController.php
in youapp/Http/Controllers
directory and put this in it:<?php namespace App\Http\Controllers; use PhpTelegramBot\Laravel\PhpTelegramBotContract; class TelegramController extends Controller { public function set(PhpTelegramBotContract $telegram_bot) { return $telegram_bot->setWebhook(url(config('phptelegrambot.bot.api_key') . '/hook')); } public function hook(PhpTelegramBotContract $telegram_bot) { $telegram_bot->handle(); } }
2- Now you need to write routes for these actions. so open your
web.php
and write:$router->group(['prefix' => '[YOUR BOT API KEY]', function() use ($router) { $router->get('set', 'TelegramController@set'); $router->post('hook', 'TelegramController@hook'); });
replace [YOUR BOT API KEY] with the API key that BotFather has given you. This is to make secure the
hook
url to ensure the incoming requests are from no one but Telegram.3- Go to
https://yoursite.com/[YOUR BOT API KEY]/set
You should see the success message.4- Create a directory for your commands. It can be anywhere, for example
app/Telegram/Commands/[CommandNameCommand].php
would be nice.This is an example
StartCommand.php
:<?php namespace Longman\TelegramBot\Commands\SystemCommands; use Longman\TelegramBot\Commands\SystemCommand; use Longman\TelegramBot\Request; class StartCommand extends SystemCommand { protected $name = 'start'; protected $usage = '/start'; public function execute() { $message = $this->getMessage(); $chat_id = $message->getChat()->getId(); $text = 'Hi! Welcome to my bot!'; $data = [ 'chat_id' => $chat_id, 'text' => $text, ]; return Request::sendMessage($data); } }
5- The last thing you need to do is to add your custom commands directory to the bot's config. so open
config/phptelegrambot.php
and add the commands directory to the array:... 'commands' => [ 'before' => true, 'paths' => [ base_path('/app/Telegram/Commands') ], 'configs' => [ // Custom commands configs ], ], ...
That's it all.
There is a fault, It should be add "/":
base_path('/app/Telegram/Commands/')
or will do not work.
from laravel.
@akalongman I'm sorry I just saw your message. I just created a PR.
from laravel.
I'll close off here, as there is a wonderful example available now!
from laravel.
Related Issues (20)
- How to call DB::getPdo(); from the controller? HOT 1
- Telegram returned an invalid response! HOT 1
- Database issues HOT 1
- When Laravel 7 ? HOT 2
- when support for laravel 8 HOT 1
- Please implement Laravel 8 support HOT 2
- I'm getting error when i install package on laravel 8 HOT 1
- Problem with install package HOT 5
- Migrations missed HOT 1
- Migrations are broken because of `->index('user_id')` HOT 1
- install for Laravel 9 HOT 4
- When the package will be updated for Laravel 9 HOT 3
- Error on instalation HOT 3
- Is there a way to receive generic messages? HOT 1
- Multiple bots HOT 1
- Update README and improve setup process
- Composer.org only has 2.0.3, incompatible with Laravel 10 HOT 2
- How to work with this?
- log cycling HOT 2
- Error Cannot declare class Longman\TelegramBot\Commands\SystemCommands\GenericmessageCommand HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel.