0

我正在尝试使用链接https://github.com/unreal4u/telegram-api的官方 PHP API 创建一个机器人游戏

在本节中,我尝试发送带有播放按钮的自己的游戏。通过此代码,我的游戏将通过图像和电报默认按钮发送。但我想对其进行自定义,并且我想在用户按下按钮然后运行游戏时向他们发送响应。

这是代码

default:
    $keyboard = new Markup();


    $kk = new Button();
    $kk->callback_game;
    $kk->callback_data = 1;


    $keyboard->inline_keyboard[] = $kk;

    $game = new SendGame();
    $game->chat_id = $chatID;
    $game->game_short_name = "lumberjack";
    $game->reply_markup = $keyboard;
    $tgLog->performApiRequest($game);


    $cbquery = new CallbackQuery();
    if ($cbquery->game_short_name) {
        $call_id = $cbquery->id;
        // $call_message_id = $update->callback_query->message->message_id;
        $msg = "all acording the plan";

        $anscall = new AnswerCallbackQuery();
        $anscall->callback_query_id = $call_id;
        $anscall->text = $msg;
        $tgLog->performApiRequest($anscall);

    }
4

1 回答 1

0

对于自定义不要创建单独的内联键盘,我相信唯一的方法是改变这一行: $game->reply_markup = $keyboard; 并编写类似 JSON OBJECT 的东西而不是 $keyboard

(一般帮助)对于nodejs来说是这样的,也许对于php来说是类似的,因为即使对于c#我也发现了类似的东西: http ://wimi5.com/how-to-create-a-gamebot-in-带有nodejs的电报/

bot.sendGame(fromId, "TestGame", { reply_markup: JSON.stringify({

                      inline_keyboard: [

                          [ { text: "Play", callback_game: JSON.stringify( { game_short_name: "TestGame" } ) } ],

                          [ { text: "Share", url: "https://telegram.me/wimi5_bot?game=TestGame" } ]

                      ]

                  })

              });
于 2017-07-25T06:12:18.260 回答