2017-12-17 2 views
0

전보 봇의 유리 단추 콜백 쿼리를 사용하는 데 문제가 있습니다. 사용자가 한 번 이상 클릭 할 수 있으며 프로그램이 단계별로 실행 중이므로 언제 실패 할 수 있습니까? 다른 시간을 클릭하면 프로그램이 다음 단계로 넘어갑니다. 콜백 메시지를 삭제해도 사용자가 두 번 이상 클릭 할 수 있습니다. 해결할 수 있습니까? 어떻게 비활성화 할 수 있습니까? 한 번의 클릭으로 콜백 명령을 사용 중지합니다.

답변

0

, 단순히 editMessageReplyMarkup 방법을 사용하여 전달하거나 reply_markup 매개 변수는 몇 가지 단계 그들 모두 쿼리 버튼을 다시 호출 할 필요가 있습니다 귀하의 attention.but에 대한

+0

당신의 대답은 tnx입니다. 나는 그것이 사실이라고 생각합니다. 나는 그것을 테스트 할 것이다. 단지 질문이있다 : 나는이 단계에서 인라인 키보드를 클릭하고 다음 단계를 위해 다음 키보드를 보여준 후에 삭제한다. 내 프로그램을 위해 사용할 수 있는가? –

+0

동일한 방법을 사용하여 기존 단추를 변경하거나 새 단추를 보낼 수 있습니다. – ManzoorWani

+0

메시지 텍스트를 변경하려면 [editMessageText] (https://core.telegram.org/bots/api#editmessagetext) 메서드 – ManzoorWani

-1

<?php 
 

 
else if(isset($arrayMessage['callback_query'])){ 
 
. 
 
. 
 
do some thing 
 
. 
 
. 
 
. 
 

 
} 
 

 

 

 
?>

는 단순히 사용자가 기본적으로 클릭 할 수있는 플래그를 설정 한 다음 조건부 공예품이 플래그에 대한 검사가. 조건부 내부에서 의도 한 클릭 동작을 실행 한 다음 플래그를 false로 설정합니다. 그러나

<?php 

$can_click = true; 

if ($can_click) { 
    // Do stuff 
    $can_click = false; 
} 

이 클릭하는, 당신은 아마 사용하기 위해 찾고있는 요소를 클릭하지 않도록하기 위해, 그래서 클라이언트 측 이루어집니다 :

는 다음에서 볼 수 있습니다 PHP 대신 (PHP 스크립트를 호출하기 위해 AJAX와 같은 것을 사용하지 않는 한).

다음에서 볼 수 있듯이 이것은, 버튼 클릭에 호출되는 함수 공예 및 전역 플래그에 대한 검사를 수행 할 것입니다 :

var button = document.getElementById('click'); 
 
var can_click = true; 
 

 
function clicked() { 
 
    if (can_click) { 
 
    console.log('This will only trigger once'); 
 
    can_click = false; 
 
    } 
 
}
<button id="click" onclick="clicked()">Click</button>

희망이 도움이 ! 당신이 callback_query를받을 때 :

+0

TNX에 빈 문자열을 전달하지 내가 어떻게 해결할 수 있니? 이 단계의 버튼을 숨 깁니다. 다음 단계의 버튼을 표시합니다. –

+0

초기 질문에 언급되지 않았으며 JavaScript/CSS에 대한 작업입니다. CSS로 기본적으로 버튼을 숨 깁니다. '# button2 {display : none; }', 그리고 함수 안에서'document.getElementById ('button2'). style.display = 'block''과 같은 것을 할 수 있습니다. –

+0

는 자바 스크립트에서는 true이지만 텔레 그램 봇용입니다. 내 로봇은 다음과 같이 작동합니다. 1) 인라인 버튼 2)을 클릭하면 사용자가 클릭하여 다음 단계로 이동합니다 .3) 다른 인라인 버튼을 보여줍니다 .... 두 번 클릭하면 2 번 계산됩니다 다음 단계로갑니다 –

관련 문제