Ich verwende node.js (v5.10.1) auf einem Ubuntu Server (14.04.4 LTS). Und die npm (@ kikinteractive/kik) wurde installiert. (https://www.npmjs.com/package/@kikinteractive/kik)kik Bot Server empfängt POST, aber bot.onTextMessage (...) antwortet nicht
Hier ist die server.js Datei, die ich geschrieben habe:
'use strict';
const util = require('util');
const http = require('http');
const Bot = require('@kikinteractive/kik');
const port = 80;
let bot = new Bot({
username: 'botnamehere',
apiKey: 'blablabla-1001-0110-1001-2112blablabla'
});
bot.onTextMessage((message)=>{
message.reply(message.body);
});
var server = http.createServer(bot.incoming());
server.on('request', function (request, response) {
bot.incoming();
// I added this to write the request
// so that I could verify my server was receiving from kik
console.log(request.method);
console.log(request.headers);
console.log(request.url);
var fs = require('fs');
fs.writeFile("./logfile.log", JSON.stringify(request.headers), function(err) {
if(err) {
return console.log(err);
}
console.log("The kik request was saved!");
});
});
server.listen(port);
Hinweis: Eine IP-Adresse wurde für die kik Konfiguration Webhook verwendet wird, und der Server lauscht auf Port 80
ich weiß, dass meine kik Konfiguration korrekt, da die Textnachrichten aus dem kik App Ergebnis in POST-Anfragen an meinem Server, hier gezeigt zu sein scheint (Schlüsseldaten für diese geposteten Frage ersetzt wurden):
{ „host“ : "ipaddressofhost", "x-kik-signature": "8EBEBLA44C3BB9769BLAE56E7E9CBLA2BA4179445", "Inhaltstyp": "application/json", "x-kik-Benutzername": "botname", "x-cloud-trace-context" : "272c0f7616d6189bla9540d1e47668f5/5407793903926111947", "content-length": "307", "verbindung": "Keep-alive", "user-agent": "AppEngine-Google; (+ http://code.google.com/appengine; appid: s ~ bot-dashboard) "," accept-encoding ":" gzip, deflate, br "}
Und ich weiß, dass mein Server Nachrichten an Kik senden kann, wie ich Folgendes getestet habe und bestätigte die Nachricht in der kik App erhalten:
bot.send (Bot.Message.text ('What!'), 'username');
die Frage ist also: Wenn meine Konfiguration richtig scheint, dass ich einen POST auf meinem Server verifizieren kann, und der kik npm korrekt installiert ist, da ich Nachrichten von meinem Server an kik senden kann, warum sitzen bot.incoming() und bot.onTextMessage gerade da und rendern meinen Server ein großer, dummer, teurer Ziegelstein? Was vermisse ich?
Jede Hilfe wird sehr geschätzt.
Vielen Dank.
tun Um zu klären: Egal, was ich in der onTextMessage Handler versucht haben, alle Beispiele unter Verwendung von Kik docs zur Verfügung gestellt, und alle, die ich habe an anderer Stelle, keiner der gefunden server.js-Beispiele funktionierten wie erwartet auf meinem Server. aber wenn ich console.log (Anfrage hinzufügen.Header), kann ich sehen, dass mein Server einen POST von Kik erhält. Was in dem was? – tbmac3