Telegram is certainly no stranger to dev brothers like WhatsApp brothers, Facebook Messenger in terms of features as well as great security capabilities. We can use Telegram to send messages to channels or groups through the Telegram Bot API . It is completely free so we can use this to report application errors, report applications daily.
You can refer to the official API Bots documentation at. https://core.telegram.org/bots
In this tutorial, we will build a simple application that allows sending messages to a channel. Let’s start working now …
Install Telegram Bot API
Telegram Bots is developed very strongly with a community of members participating in building and developing support on many different languages and platforms. We can see it at: https://core.telegram.org/bots/samples . We will be using the Telegram Bot API PHP SDK package developed by Syed Irfaq R. The reason for using it is that it supports Laravel and is highly appreciated by the community.
Install with the following cmd:
1 2 | composer require irazasyed/telegram-bot-sdk |
Next, add the following line to the Service Provider in config/app.php
.
1 2 | Telegram <span class="token package">Bot Laravel TelegramServiceProvider</span> <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token keyword">class</span> <span class="token punctuation">,</span> |
add to the array aliases with:
1 2 | <span class="token single-quoted-string string">'Telegram'</span> <span class="token operator">=</span> <span class="token operator">></span> Telegram <span class="token package">Bot Laravel Facades Telegram</span> <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token keyword">class</span> <span class="token punctuation">,</span> |
As the final step, we will publish the configuration:
1 2 | php artisan vendor <span class="token punctuation">:</span> publish <span class="token operator">--</span> provider <span class="token operator">=</span> <span class="token double-quoted-string string">"TelegramBotLaravelTelegramServiceProvider"</span> |
The above command will create config file telegram.php in config directory. Configuration information will be set here.
Create a Telegram Bot
First we need to install the Telegram app and do an interesting thing by talking to BotFather to create a new telegram bot. ^^! quite new.
To do this, we need to send a message to @BotFather and perform a few simple steps like this:
- Click Start and proceed to communicate with the botfather with
/start
- Create a new bot with
/newbot
- Set a name and username for the bot.
Finally, you will receive confirmation that the bot has been successfully created with the token to be used for the HTTP API . We can also refer here ( https://core.telegram.org/bots/api ) to see what we can teach the bot.
Next, we will configure the environment variable for our bot with the token we just received
1 2 | TELEGRAM_BOT_TOKEN=525012101:AAEwy9R1SCpq0V_Bpkgqm9Z4nbrWZaNt_Kg.... |
Create a channel to send notifications
Create a channel
Now, we need to create a new channel to send the notifications and set it to public so that we can easily find and join.
Next, we will invite the newly created bot with Admin privileges to allow the bot to send messages to the channel.
Configure bot
We need to configure the bot info at config/telegram.php
with some token values, certificate_path and webhook_url . This information we can completely set at env :
1 2 3 4 5 6 7 8 9 10 11 | <span class="token single-quoted-string string">'bots'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'mybot'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'username'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token function">env</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'TELEGRAM_BOT'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'TelegramBot'</span> <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'token'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token function">env</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'TELEGRAM_BOT_TOKEN'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">''</span> <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'certificate_path'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token function">env</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'TELEGRAM_CERTIFICATE_PATH'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">''</span> <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'webhook_url'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token function">env</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'TELEGRAM_WEBHOOK_URL'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">''</span> <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'commands'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token punctuation">[</span> <span class="token punctuation">]</span> <span class="token punctuation">,</span> <span class="token punctuation">]</span> <span class="token punctuation">,</span> <span class="token punctuation">]</span> <span class="token punctuation">,</span> |
Get Channel chat_id
To be able to send messages or notify to any channel or group we need chat_id . chat_id is a unique identifier with which we can send messages in Telegram.
Finding chat_id information we can get by creating a route so Telegram can return all information related to the bot’s activity. The returned information contains the channel and associated chat_id number that this bot owns.
Check bot activity
First we create TelegramController with updatedActivity
method to capture information returned from Telegram.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">namespace</span> <span class="token package">App Http Controllers</span> <span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Illuminate Http Request</span> <span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Telegram Bot Laravel Facades Telegram</span> <span class="token punctuation">;</span> <span class="token keyword">class</span> <span class="token class-name">TelegramController</span> <span class="token keyword">extends</span> <span class="token class-name">Controller</span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">updatedActivity</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$activity</span> <span class="token operator">=</span> Telegram <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">getUpdates</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token function">dd</span> <span class="token punctuation">(</span> <span class="token variable">$activity</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </span> |
add the route at routes/web.php
.
1 2 | Route <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">get</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'/updated-activity'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">' <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> '</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Run the app to check activity with endpoint /updated-activity
. Now we can get a blank message if no activity has occurred.
We will try to open the channel and issue a Hi
, Hello
message and then refresh the browser to check the changed information:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <span class="token keyword">array</span> <span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">[</span> ▼ <span class="token number">0</span> <span class="token operator">=</span> <span class="token operator">></span> Telegram <span class="token package">Bot Objects Update</span> <span class="token punctuation">{</span> <span class="token shell-comment comment">#290 ▼</span> <span class="token shell-comment comment">#items: array:2 [▼</span> <span class="token double-quoted-string string">"update_id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">276542675</span> <span class="token double-quoted-string string">"channel_post"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token keyword">array</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">[</span> ▼ <span class="token double-quoted-string string">"message_id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">7</span> <span class="token double-quoted-string string">"chat"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token keyword">array</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">[</span> ▼ <span class="token double-quoted-string string">"id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token operator">-</span> <span class="token number">1001120496444</span> <span class="token double-quoted-string string">"title"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"Tele Channel Test Bot"</span> <span class="token double-quoted-string string">"username"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"telechanneltestbot"</span> <span class="token double-quoted-string string">"type"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"channel"</span> <span class="token punctuation">]</span> <span class="token double-quoted-string string">"date"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">1603295295</span> <span class="token double-quoted-string string">"text"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"Hi"</span> <span class="token punctuation">]</span> <span class="token punctuation">]</span> <span class="token punctuation">}</span> <span class="token number">1</span> <span class="token operator">=</span> <span class="token operator">></span> Telegram <span class="token package">Bot Objects Update</span> <span class="token punctuation">{</span> <span class="token shell-comment comment">#299 ▼</span> <span class="token shell-comment comment">#items: array:2 [▼</span> <span class="token double-quoted-string string">"update_id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">276542676</span> <span class="token double-quoted-string string">"channel_post"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token keyword">array</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">[</span> ▼ <span class="token double-quoted-string string">"message_id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">8</span> <span class="token double-quoted-string string">"chat"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token keyword">array</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">[</span> ▼ <span class="token double-quoted-string string">"id"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token operator">-</span> <span class="token number">1001120496444</span> <span class="token double-quoted-string string">"title"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"Tele Channel Test Bot"</span> <span class="token double-quoted-string string">"username"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"telechanneltestbot"</span> <span class="token double-quoted-string string">"type"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"channel"</span> <span class="token punctuation">]</span> <span class="token double-quoted-string string">"date"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token number">1603295569</span> <span class="token double-quoted-string string">"text"</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token double-quoted-string string">"Hello"</span> <span class="token punctuation">]</span> <span class="token punctuation">]</span> <span class="token punctuation">}</span> <span class="token punctuation">]</span> |
Easily find an id in the array channel_post/chat/id
, in this case we would be chat_id of -1001120496444
. Set the TELEGRAM_CHANNEL_ID
in the .env file to this value.
1 2 | TELEGRAM_CHANNEL_ID=-1001120496444 |
Create a messaging app
In this application, we will create a contact form to send contact requests as follows:
Create view
create file contactform.blade.php
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <span class="token doctype"><!doctype html></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> html</span> <span class="token attr-name">lang</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> en <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> head</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> meta</span> <span class="token attr-name">charset</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> UTF-8 <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> meta</span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> viewport <span class="token punctuation">"</span></span> <span class="token attr-name">content</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0 <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> meta</span> <span class="token attr-name">http-equiv</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> X-UA-Compatible <span class="token punctuation">"</span></span> <span class="token attr-name">content</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> ie=edge <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> title</span> <span class="token punctuation">></span></span> Telegram Bot Contact Form <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> title</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> link</span> <span class="token attr-name">rel</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> stylesheet <span class="token punctuation">"</span></span> <span class="token attr-name">href</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> head</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> body</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> nav</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> navbar navbar-expand-lg navbar-light bg-light <span class="token punctuation">"</span></span><span class="token style-attr language-css"><span class="token attr-name"> <span class="token attr-name">style</span></span> <span class="token punctuation">="</span> <span class="token attr-value"><span class="token property">margin-bottom</span> <span class="token punctuation">:</span> 50px <span class="token punctuation">;</span></span> <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> a</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> navbar-brand <span class="token punctuation">"</span></span> <span class="token attr-name">href</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> # <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Telegram <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> a</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> collapse navbar-collapse <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> ul</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> navbar-nav mr-auto <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> li</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> nav-item <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> a</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> nav-link <span class="token punctuation">"</span></span> <span class="token attr-name">href</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> {{ url('/contact') }} <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Contact Us <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> a</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> li</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> li</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> nav-item <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> a</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> nav-link <span class="token punctuation">"</span></span> <span class="token attr-name">href</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> {{ url('/updated-activity') }} <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Check Activity <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> a</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> li</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> ul</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> nav</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> container <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> row <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> col-sm-10 offset-sm-1 <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> form</span> <span class="token attr-name">action</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> {{ url('/send-message') }} <span class="token punctuation">"</span></span> <span class="token attr-name">method</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> post <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> {{ csrf_field() }} <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> form-group <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> label</span> <span class="token attr-name">for</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> email <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Email address <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> label</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> input</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> email <span class="token punctuation">"</span></span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> form-control <span class="token punctuation">"</span></span> <span class="token attr-name">id</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> email <span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> email <span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> Enter your email <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> form-group <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> label</span> <span class="token attr-name">for</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> message <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Message <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> label</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> textarea</span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> message <span class="token punctuation">"</span></span> <span class="token attr-name">id</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> message <span class="token punctuation">"</span></span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> form-control <span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> Enter your query <span class="token punctuation">"</span></span> <span class="token attr-name">rows</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> 10 <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> textarea</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> div</span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> form-group <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span> button</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> submit <span class="token punctuation">"</span></span> <span class="token attr-name">class</span> <span class="token attr-value"><span class="token punctuation">=</span> <span class="token punctuation">"</span> btn btn-primary <span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> Submit <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> button</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> form</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> div</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> body</span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span> html</span> <span class="token punctuation">></span></span> |
set the routes:
1 2 3 | Route <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">get</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'/contact'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">' <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> '</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> Route <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">post</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'/send-message'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">' <a class="__cf_email__" href="/cdn-cgi/l/email-protection">[email protected]</a> '</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
Set up the action
Update TeletgramController:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">namespace</span> <span class="token package">App Http Controllers</span> <span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Illuminate Http Request</span> <span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Telegram Bot Laravel Facades Telegram</span> <span class="token punctuation">;</span> <span class="token keyword">class</span> <span class="token class-name">TelegramController</span> <span class="token keyword">extends</span> <span class="token class-name">Controller</span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">updatedActivity</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$activity</span> <span class="token operator">=</span> Telegram <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">getUpdates</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token function">dd</span> <span class="token punctuation">(</span> <span class="token variable">$activity</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">contactForm</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token function">view</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'contactform'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">sendMessage</span> <span class="token punctuation">(</span> Request <span class="token variable">$request</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$request</span> <span class="token operator">-</span> <span class="token operator">></span> <span class="token function">validate</span> <span class="token punctuation">(</span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'email'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token single-quoted-string string">'required|email'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'message'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token single-quoted-string string">'required'</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token variable">$text</span> <span class="token operator">=</span> <span class="token double-quoted-string string">"A new contact us queryn"</span> <span class="token punctuation">.</span> <span class="token double-quoted-string string">"<b>Email Address: </b>n"</span> <span class="token punctuation">.</span> <span class="token double-quoted-string string">" <span class="token interpolation"><span class="token variable">$request</span> <span class="token operator">-</span> <span class="token operator">></span> <span class="token property">email</span></span> n"</span> <span class="token punctuation">.</span> <span class="token double-quoted-string string">"<b>Message: </b>n"</span> <span class="token punctuation">.</span> <span class="token variable">$request</span> <span class="token operator">-</span> <span class="token operator">></span> <span class="token property">message</span> <span class="token punctuation">;</span> Telegram <span class="token punctuation">:</span> <span class="token punctuation">:</span> <span class="token function">sendMessage</span> <span class="token punctuation">(</span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'chat_id'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token function">env</span> <span class="token punctuation">(</span> <span class="token single-quoted-string string">'TELEGRAM_CHANNEL_ID'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">''</span> <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'parse_mode'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token single-quoted-string string">'HTML'</span> <span class="token punctuation">,</span> <span class="token single-quoted-string string">'text'</span> <span class="token operator">=</span> <span class="token operator">></span> <span class="token variable">$text</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token function">redirect</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token operator">></span> <span class="token function">back</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </span> |
After successfully validating the data, we will send a message to the channel with the Telegram::sendMessage
method with HTML parse_mode
to perform html parse with the above text.
Finally, access the endpoint /contact
to try sending the contact form to check the results.
^^!
Conclude
Thus, we have been sent by Telegram bot and sent messages to channel successfully with Telegram Bot API. Hopefully after this article you can develop many practical applications for your own from Telegram such as applying to report work results or safety warning applications. Good luck!
See at:
https://core.telegram.org/bots
https://tutsforweb.com/sending-notifications-to-telegram-messenger-with-laravel/