Message not receiving automatically for Telegram CHATBOT funciton using PHP

647 views Asked by At

In order to integrate Telegram Chatbot using PHP, I have already followed below steps.

After that, I have made simple PHP file using following line of code.

<?php 
define('BOT_TOKEN', 'CHANGE-ME');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');


// This is to read incoming message and fetch chatid
$content    = file_get_contents("php://input");
$update     = json_decode($content, true);
$chatID     = $update["message"]["chat"]["id"];
$message    = $update["message"]["text"];

// compose reply
$reply ="";
switch ($message) {
    case "/start":
        $reply =  "Welcome to chatbot world. Type /help to see commands";
        break;
    case "/test":
        $reply =  "test message";
        break;
    case "/hi":
        $reply =  "Hello from ChatBot";
        break;
    case "/help":
        $reply =  "commands: /start , /test , /hi , /help "; 
        break;
    default:
        $reply =  "Something wrong";
}

// send reply
$sendto =API_URL."sendmessage?chat_id=".$chatID."&text=".$reply;
file_get_contents($sendto);

// Create a debug log.txt to check the response/reply from Telegram in JSON format.
// You can disable it by commenting checkJSON.
checkJSON($chatID,$update);
function checkJSON($chatID,$update){

    $myFile = "log.txt";
    $updateArray = print_r($update,TRUE);
    $fh = fopen($myFile, 'a') or die("can't open file");
    fwrite($fh, $chatID ."nn");
    fwrite($fh, $updateArray."nn");
    fclose($fh);
}

Although, I am not receiving message properly.

1

There are 1 answers

1
Krupal Patel On

Not sure but this might be the case for you.

You just need to make sure that you have successfully run webhook URL that start listening your request before messaging in Telegram ChatBot.

URL : https://api.telegram.org/bot/setWebhook?url=https://mywebsite.com/path/to/filename.php

As of now, finally, I have successfully created demo of Telegram Chatbot using PHP.