我如何使用inline_keybord和电报?

时间:2017-06-28 17:27:42

标签: php

我正在尝试用电报制作一个机器人,但是我无法运行电报的内联键盘,或者更好,我无法对用户按下的键进行响应......这是我的代码:

function in_keyboard($chatID, $text){
  $keyboard = '{"inline_keyboard":[[{"text":"Warrior","callback_data":"data"}],[{"text":"Paladin","callback_data":"data"}],[{"text":"Assassin","callback_data":"data"}],[{"text":"Druid","callback_data":"data"}],[{"text":"Mage","callback_data":"data"}],[{"text":"Hunter","callback_data":"data"}]]}';
  $url = $GLOBALS[website]."/sendMessage?&chat_id=".$chatID."parse_mode=Markdown&reply_markup=".$keyboard."&text=".urlencode($text);
  file_get_contents($url);
   }

1 个答案:

答案 0 :(得分:0)

您的代码工作正常,因为它显示六个内联键盘按钮。

接下来,您需要处理用户输入。按其中一个按钮将导致向您的服务器发送请求。它包含JSON作为您可以使用的POST数据。 它看起来像这样:

{
   "update_id":390709664,
   "callback_query":{
      "id":"717705292376918617",
      "from":{
         "id":12345678,
         "first_name":"foo",
         "username":"someName",
         "language_code":"en"
      },
      "message":{
         "message_id":78433,
         "from":{
            "id":210575457,
            "first_name":"yourBotDisplayName",
            "username":"yourBotUsername"
         },
         "chat":{
            "id":167103785,
            "first_name":"foo",
            "username":"someName",
            "type":"private"
         },
         "date":1498825165,
         "text":"ok"
      },
      "chat_instance":"-29205973098956026374",
      "data":"data"
   }
}

获取您需要的任何数据(可能是data字段),构建响应并将其发送给用户。