2016-04-01 2 views
1

Я пытаюсь запустить ботовую программу Skype, исходя из echo example, но я изо всех сил стараюсь сделать успешный POST для своего приложения. Когда я отправляю сообщение в /v1/chat, я возвращаю статус 201 (успешное создание) и ничего в теле. Мой console.log ничего не печатает, что заставляет меня думать, что функция botService.on('personalMessage', ...) не запускается. Кто-нибудь знает, как эти POST-запросы должны быть отформатированы? Я не могу найти ничего в документации.Skype Bot отвечает пустым телом

Мой код:

const fs = require('fs'); 
const restify = require('restify'); 
const skype = require('skype-sdk'); 

const botService = new skype.BotService({ 
    messaging: { 
     botId: '28:<bot’s id="ID176db9ab-e313-4d76-a60c-bc2a280e9825">', 
     serverUrl : "https://apis.skype.com", 
     requestTimeout : 15000, 
     appId: process.env.APP_ID, 
     appSecret: process.env.APP_SECRET 
    } 
}); 

botService.on('contactAdded', (bot, data) => { 
    console.log('contact added'); 
    bot.reply('Hello ${data.fromDisplayName}!', true); 
}); 

botService.on('personalMessage', (bot, data) => { 
    console.log('message incoming'); 
    console.log(data); 
    bot.reply('Hey ${data.from}. Thank you for your message: "${data.content}".', true); 
}); 

const server = restify.createServer(); 
server.post('/v1/chat', skype.messagingHandler(botService)); 
const port = process.env.PORT || 8080; 
server.listen(port); 
console.log('Listening for incoming requests on port ' + port); 

ответ

0

Final Редактировать & Решение: Я думаю, что проблема вызвана Heroku какой-то образом (это может быть что-то с их свободным уровнем, 1 дина). После некоторых усилий я загрузил программу в Azure, и теперь она работает отлично.

Потенциальное решение. Вам необходимо изменить адрес сервера в команде server.post. Если вы запустите свою программу на странице «https: \ www.yourwebsite.com/v1/chat», вам необходимо ее изменить;

server.post('/v1/chat', skype.messagingHandler(botService)); 

к этому;

server.post('https:\\www.yourwebsite.com/v1/chat', skype.messagingHandler(botService)); 

Конечно, не забудьте указать свой идентификатор приложения, идентификатор бота и секрет приложения. Если у вас его нет, вам нужно сгенерировать пароль на своей странице приложения Skype.


У меня есть точная проблема с ОП. Я следил за учебником, и он не указывает, как изменить наш код, чтобы он соответствовал нашему серверу. Таким образом, после запуска программы он возвращает только это;

{ "Код": "ResourceNotFound", "сообщение": "/ не существует"}

В примере Echo Bot в веб-страницу Skype; это говорит;

«Мы предположим, что URL-адрес бота для обмена сообщениями был установлен на https://echobot.azurewebsites.net/v1/chat во время регистрации».

+0

Вполне возможно, что это может быть проблемой в конце Skype. Недавно у меня было 2 сообщения, которые эхом отдал мой бот, а затем он снова перестал работать. Я, кстати, развертывается на Heroku, но это не должно меняться, учитывая, что бот просто ищет API-конечные точки. – polskais1

+0

@ polskais1 Шахта также размещена в Хереку. Просто fyi – user3842413

+0

Хм, интересно знать. Я обязательно отправлю комментарий, если мне удастся заставить эту работу работать стабильно! – polskais1

Смежные вопросы