PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-如何从服务器定义用于电报BOT的命令大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我用@botfather创建了@L_197_0@机器人,这一切都很好.现在我想将主机的命令设置为电报.我在根目录中创建了Bot.PHP.

Bot.PHP

$String = json_decode(file_get_contents('PHP://input'));

    function objectToArray( $object )
    {
        if( !is_object( $object ) && !is_array( $object ) )
        {
            return $object;
        }
        if( is_object( $object ) )
        {
            $object = get_object_vars( $object );
        }
        return array_map( 'objectToArray', $object );
    }

    $result = objectToArray($String);
    $user_id = $result['message']['from']['id'];
    $text = $result['message']['text'];
    if($text == 'Hi')
    $text_reply = 'Hi';
if($text == 'Your name')
    $text_reply = 'jJoe';

    $token = '';
    $text_reply = 'Got you Buddy.';

    $url = 'https://api.telegram.org/bot'.tokennumber.'/sendmessage?chat_id='.$user_id;
    $url .= '&text=' .$text_reply;


    $res = file_get_contents($url);  

现在,当我浏览此内容时:https://api.telegram.org/bot112186325:tokennumber / setWebhook?url = https://partamsms.ir/bot.PHP

我得到这个:{“ ok”:true,“ result”:true,“ description”:“ Webhook已设置”}

但是我不能在电报帐户中运行这些命令.

如何从服务器运行命令?

太感谢了

解决方法:

根据您的评论,您希望某些内容会根据用户键入的消息而有所不同.因此,使用示例代码,可以将其更改为如下所示:

// NOTE: you can pass 'true' as the second argument to decode as array
$result= json_decode(file_get_contents('PHP://input'), truE);
error_log(print_r($result, 1), 3, '/path/to/logfile.log');

$user_id = $result['message']['from']['id'];
$text = $result['message']['text'];

// TODO: use something like strpos() or strcmp() for more flexibility
switch (true)
{
    case $text == '/hi':
        $text_reply = 'Hello';
        break;

    case $text == '/yourname':
        // TODO: use the getMe API call to get the bot information
        $text_reply = 'jJoe';
        break;

    default:
        $text_reply = 'not sure what you want?';
        break;
}

$token = '';
$url = 'https://api.telegram.org/bot'.tokennumber.'/sendmessage?chat_id='.$user_id;
$url .= '&text=' .$text_reply;
$res = file_get_contents($url);  

因此,这几乎是对您已经拥有的内容的轻微重构…如果问题是您的Bot.PHP脚本未触发,则可能是因为该页面不是公共的.您指定给Telegram的Webhook必须是可公开访问的URl.我试图达到https://partamsms.ir/bot.php,但我无法达到.

一种替代方法是改为使用getupdates方法,并计划脚本每5秒左右运行一次.

大佬总结

以上是大佬教程为你收集整理的php-如何从服务器定义用于电报BOT的命令全部内容,希望文章能够帮你解决php-如何从服务器定义用于电报BOT的命令所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: