Проблемы с Bot Telegram в PhP (клавиатура и встроенный режим) - PullRequest
0 голосов
/ 09 сентября 2018

Использование: php с подключением webhook все правильно, если я перехожу на другой бот php, он работает: {"ok": true, "result": true, "description": "Webhook уже установлен"}

Мой бот не работает, не имеет никакого отношения к Php (я использую пример Keyboard-inline), это код source.php. Надеюсь, вы, ребята, можете мне помочь с какой-то идеей: S: (

  <?php

define('api', 'https://api.telegram.org/bot'.token.'/');

$data = file_get_contents("php://input");
$update = json_decode($data,true);

$message = $update["message"];
$text = $message["text"];
$cid = $update["message"]["from"]["id"];
$from = $message["from"];
$username = $from["username"];
$nome = $from["first_name"];
$cognome = $form["last_name"];

$cbid = $update["callback_query"]["from"]["id"];
$cbdata = $update["callback_query"]["data"];

function callback($up){
    return $up[callback_query];
}

function apiRequest($metodo){
    $req = file_get_contents(api.$metodo);
    return $req;
}

function send($id,$text){
    if(strpos($text, "\n")){
        $text = urlencode($text);
    }
    return apiRequest("sendMessage?text=$text&parse_mode=HTML&chat_id=$id");
}

function keyboard($tasti, $text, $cd){
    $tasti2 = $tasti;

    $tasti3 = json_encode($tasti2);

        if(strpos($textm "\n")){
            $text = urlencode($text);
        }

 apiRequest("sendMessage?text=$text&parse_mode=Markdown&chat_id=$cd&reply_markup=$tasti3");
}

function inlinekeyboard($menud,$chat,$text){
    $menu = $menud;

        if(strpos($text, "\n")){
            $text = urlencode($text);
        }

        $d2 = array(
            "inline_keyboard" => $menu,
        );

        $d2 = json_encode($d2);

        return apiRequest("sendMessage?chat_id=$chat&parse_mode=Markdown&text=$text&reply_markup=$d2"); }

А это код bot.php

<?php

define('token', '<token>');

include 'source.php';

if($text == "/start"){
    send($cid, "bievenido al Bot inversion");
}

if($text == "tastiera"){
    $keyboard = [
        ["Inline", "Inline2"],
        ["Inline3", "Inline4"],
];
$key = array(
"resize_keyboard" => true,
"keyboard" => $keyboard,
);

    keyboard($key, "bievenido al Bot inversion", $cid);
}

if($text == "Inline"){
    $but = array(array(array("text" => "Bottone 1", "url" => "www.google.com"),),);
    inlineKeyboard($but, $cid , "Clicca questo pulsante per andare su google");
}

if($text == "Inline2"){
    $but = array(array(array("text" => "Bottone 1", "url" => "www.google.com"),array("text" => "Bottone 2", "url" => "www.facebook.it"),),);
    inlineKeyboard($but, $cid, "Clicca uno di questi due pulsanti \nper andare su google o su facebook!");
}

if($text == "Inline3"){
    $but[] = array(array("text" => "Bottone 1", "url" => "www.google.com"),);
    $but[] = array(array("text" => "Bottone 2", "url" => "www.facebook.it"),);
    inlineKeyboard($but, $cid, "Clicca uno di questi due pulsanti \nper andare su google o su facebook");   
}

if($text == "Inline4"){
    $but = array(array(array("text" => "Bottone 1", "callback_data" => "ciao1"),),);
    inlineKeyboard($but, $cid, "Clicca il bottone!");
}

if(callback($update)){
    if($cbdata == "ciao1"){
    send($cbid, "hai cliqueado el Bottone 1");
    }
}

1 Ответ

0 голосов
/ 09 сентября 2018

Очень полезно взглянуть на журнал ошибок PHP. Это скажет вам

Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное '"\ n"' (T_CONSTANT_ENCAPSED_STRING) в [...]. Php в строке xx

Вы пропустили , в if(strpos($textm "\n")).

...