2017-01-23 16 views
0

チャットでinline_keyboard apperの後にinline_button2を押して、インラインボタン2をクリックしたときに、ユーザーが応答するようにしていますcallback_dataオブジェクトが "callback_data" => 'inline2' => 'callback_data'ヌル see screenshotテレグラムcallback_dataが更新配列内でnullです

$access_token = '...'; 
$api = 'https://api.telegram.org/bot' . $access_token; 

$content = file_get_contents("php://input"); 
$update = json_decode($content, TRUE); 
$callback_query = $update['CallbackQuery']; 
$callback_data = $callback_query['data']; 

$message = $update["message"]; 
$text = $message["text"]; 
$chatId = $message["chat"]["id"]; 
if (!isset($chatId)) {exit;} 

switch($callback_data){ 
    case 'inline2': 
     sendMessage($chatId, "inline2 pressed",null); 
     break; 
    default: 
     sendMessage($chatId, var_export($callback_query,TRUE),null); 
     break; 
} 
switch($text) { 
    case 'inline': 
     $inline_button1 = array("text"=>"inline1","url"=>"http://google.com", "callback_data"=>'inline1'); 
     $inline_button2 = array("text"=>"inline2","callback_data"=>'inline2'); 
     $inline_keyboard = array(array($inline_button1,$inline_button2)); 
     $keyboard=array("inline_keyboard"=>$inline_keyboard); 
     sendMessage($chatId, "назад",$keyboard); 
     break; 
} 

function sendMessage($chat_id, $message, $replyMarkup) { 
    $s=''; 
    if (isset($replyMarkup)) { 
     $s=json_encode($replyMarkup); 
    } 
    file_get_contents($GLOBALS['api'] . '/sendMessage?parse_mode=HTML&chat_id=' . $chat_id . '&disable_web_page_preview=true&text=' . urlencode($message) .'&reply_markup='.$s); 
} 

答えて

0

あなたはcallback_queryオブジェクトからchatIdを取る必要があり、誤って、さらにcallback_queryにアクセスしています。

$callback_query = $update['callback_query']; 
$callback_data = callback_query["data"]; 
$chatId = callback_query["message"]["chat"]["id"]; 
0

変更この$callback_query = $update['CallbackQuery'];$callback_query = $update['callbackquery'];

あなたもcallbackquery

$message_id = ['callback_query']['message']['message_id']; //callbackquery message id 
$chat_id = $callback_query['message']['chat']['id']; // callbackquery chat id 

ために以下を追加する必要があります私は、これは

を役に立てば幸い
関連する問題