2016-06-01 7 views
0

Ich habe eine lokale Webseite von JSP, und ich kann sendMessage oder sendPhoto durch den Telegrammroboter API über diese Seite an einen Telegrammbenutzer senden. Aber nach dem Absenden dieser Anfrage von meiner Seite leitet die URL zu einer anderen Seite um, die Werte der Bot-API-Methode zurückgibt, die dort gezeigt wird. Ich möchte diese Parameter abrufen und Werte auf meiner lokalen Seite zurückgeben, und ich möchte nicht zu dieser URL wechseln. DieseSo erhalten Sie Rückgabeparameter eines Telegramms Bot-Methode (API)

ist zum Beispiel:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<html> 
    <head></head> 

    <body> 
     <form action="https://api.telegram.org/bot<token>/sendMessage" method="POST"> 
      <input type="text" name="chat_id" id="chat_id"value="myChatId"> 
      <input type="text" name="text" id="text" value="hello"> 
      <input type="submit" value="submit"> 
     </form> 
    </body> 
</html> 

Wenn ich diese Seite klicken Sie auf Absenden erscheint:

https://api.telegram.org/bot<Token>/sendMessage und die Ergebnisse der Anfrage an mich gezeigt und hallo durch die Id von myChatId an den Benutzer senden . Also, ich möchte, dass diese Seite nicht angezeigt wird, und ich werde auf meiner aktuellen lokalen Seite sein, aber ich kann Ergebnisse empfangen und sehen und Parameter der Sendung der Nachricht mit dieser Methode auf meiner lokalen Seite zurückgeben.

+3

Was Sie tun, ist falsch. Sie müssen serverseitige Anfragen an die Telegram-API stellen, nicht an clientseitige Anfragen. – ariaby

+0

Sie meinen, dass ich kein Formular senden sollte und ich sollte eine Anfrage von Java senden (zum Beispiel oder PHP)? Also, wie kann ich das Ergebnis und die Parameter per Telegramm api wie user_id erhalten, um in DB zu speichern? @ariaby –

+0

Ja, irgendeine Programmiersprache aber von der Serverseite. dann machen Sie einfach eine Anfrage und erhalten das Ergebnis zurück. So in PHP: '' 'php $ Antwort = $ this-> Telegramm-> sendMessage ($ chatId, $ Nachricht); '' ' – ariaby

Antwort

1

Sie können eine ajax Anfrage in Ihrer Seite verwenden, um api URL mit post-Methode und Block Seite neu laden Telegramm:

Run in jsfiddle

$('form').submit(function(e) { 
 
    e.preventDefault(); 
 
    $.ajax({ 
 
    url: 'https://api.telegram.org/bot' + $('#token').val() + '/sendMessage', 
 
    method: 'POST', 
 
    data: { 
 
     chat_id: $('#chat_id').val(), 
 
     text: $('#text').val() 
 
    }, 
 
    success: function() { 
 
     alert('your message has been sent!'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form> 
 
    <input type="text" name='token' id="token" placeholder="your bot token"> 
 
    <input type="text" name="chat_id" id="chat_id" value="myChatId"> 
 
    <input type="text" name="text" id="text" value="hello"> 
 
    <input type="submit" value="submit"> 
 
</form>