2017-12-19 3 views
0

Ich möchte eine benutzerdefinierte Tastatur erstellen.Google App Skript - Telegram Bot - Benutzerdefinierte Tastatur

Ich habe dieses GAS Code:

function sendText(chatId,text){ 

var payload = { "method": "sendMessage", "chat_id": String(chatId),"text": text, "parse_mode": "HTML" } 

var data = { 
    "method": "post", 
    "payload": payload, 
    "reply_markup": JSON.stringify({ 
    "keyboard": [ 
     [ 
     "A", 
     "B" 
     ], 
     [ 
     "C", 
     "D" 
     ] 
    ], 
    "resize_keyboard":true 
    }) 
} 

UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data); 

} 

es funktioniert super als Echo bietet aber ich bin nicht in der Lage eine benutzerdefinierte Tastatur zu erstellen. Es funktioniert einfach nicht und ich habe keine Ahnung warum. Ich habe online nach der Lösung gesucht, aber nichts gefunden. Helfen Sie mir, bitte :)

Antwort

0

Mit Hilfe von @Sean und @Kos ich habe mein Problem gelöst, und hier ist der Arbeitscode. Ich habe auch den inline_keyboard Typ hinzugefügt.

function sendText(chatId,text,keyBoard){ 

    keyBoard = keyBoard || 0; 

    if(keyBoard.inline_keyboard || keyBoard.keyboard){ 
    var data = { 
     method: "post", 
     payload: { 
     method: "sendMessage", 
     chat_id: String(chatId), 
     text: text, 
     parse_mode: "HTML", 
     reply_markup: JSON.stringify(keyBoard) 
     } 
    } 
    }else{ 
     var data = { 
     method: "post", 
     payload: { 
      method: "sendMessage", 
      chat_id: String(chatId), 
      text: text, 
      parse_mode: "HTML" 
     } 
     } 
    } 

    UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data); 

} 

das Tastaturformat wie folgt sein:

{ 
    keyboard: [ 
     [ 
     "A", 
     "B" 
     ], 
     [ 
     "C", 
     "D" 
     ] 
    ], 
    resize_keyboard:true, 
    one_time_keyboard:true 
    } 

    { 
    inline_keyboard: [ 
     [ 
     {text:'Sandwich',callback_data:'sandwich'}, 
     {text:'A juicy steak',callback_data:'steak'} 
     ], 
     [ 
     {text:'Sandwich2',callback_data:'sandwich2'}, 
     {text:'A juicy steak2',callback_data:'steak2'} 
     ] 
    ] 
    } 
0

Sie verwenden das falsche Format für keyboard Feld, siehe folgendes Beispiel:

Awesome Telegram Bot

+0

Es tut mir leid für jeden Fehler, den ich gemacht habe. Vielen Dank für die Bearbeitung. Davon abgesehen habe ich deinen Code ausprobiert, funktioniert aber immer noch nicht. Die benutzerdefinierte Tastatur wird nicht angezeigt. Ich habe meine Frage bearbeitet, um deinen neuen Code zu schreiben. – Paolo177

+0

@ Paolo177 Ich denke, "reply_markup" sollte Kind von "Nutzlast" -Objekt sein – Kos

+0

Ja, 'chat_id',' text', 'reply_markup' sollte zu' Nutzlast' in Ihrer Bibliothek umbrechen. – Sean

0

Show, bitte, wie Sie dann mit dem callback_data in App-Skript arbeiten?