2016-06-03 32 views
6

Sto provando a creare skype bot.Il bot di Skype creato con skype-sdk in Node.js non funziona correttamente?

Ho seguito la documentazione fornita da skype-sdk ma non è riuscito a crearlo usando quello. Impossibile ottenere risposta da bot.

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

const botService = new skype.BotService({ 
    messaging: { 
     botId: 'xxxxxxxx-xxx-xxx-xxx-xxxxxxxxxxxx', 
     serverUrl : "https://example.net", 
     requestTimeout : 15000, 
     appId: 'xxxxxxxx-xxx-xxx-xxx-xxxxxxxxxxxx', 
     appSecret: 'xxxxxxxxxxxxxxxxxxxxxxxx' 
    } 
}); 

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

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

const server = restify.createServer(); 

server.use(skype.ensureHttps(true)); 
server.use(skype.verifySkypeCert({})); 

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

Grazie

+0

https://developer.microsoft.com/en-us/skype/bots ha seguito questa documentazione – vikrant

+0

Sembra un tutorial decente. Cosa ti fa pensare che le risposte qui sarebbero migliori? – enkryptor

+0

Voglio dire, perché non hai seguito il tutorial? Cosa c'è di sbagliato nel tutorial, quali risposte dovremmo darvi? – enkryptor

risposta

3

Nell'esempio fornito il bot non si connette a un server di Skype a causa di server sbagliato specificato:

serverUrl : "https://example.net" 

È necessario specificare un server di skype valida:

serverUrl : "https://apis.skype.com" 

Si specifica anche API uri errato nello server.post (in pratica che de pends delle impostazioni webhook, ma non sono stati forniti, in modo da sto supponendo di default):

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

Devi usare '/v1/chat' per la messaggistica. Prova this tutorial.

+0

È 'appid' e' botid' sono uguali, per quanto riguarda 'appSecret' è la' password' o 'privatekey' .. In modalità debug vedo' skype-sdk.azure-utils Richiesta non ricevuta su HTTPS, reindirizzamento a HTTPS endpoint' – Wazzzy

+0

funziona per me con ngrok, ma non funziona con https da solo, ho il server Apache in esecuzione. Questo sta causando un problema ??? – vikrant

+0

Server Apache? Per quale scopo? Cosa intendi con "non funziona", cosa succede esattamente? – enkryptor

0

Crea il tuo robot con Microsoft Bot Framework BotBuilder SDK invece di utilizzare il pacchetto skype-sdk.

È possibile costruire un bot base Skype utilizzando il seguente codice di esempio:

https://github.com/Microsoft/BotBuilder/blob/master/Node/examples/demo-skype/app.js

Per un esempio più dettagliato delle caratteristiche di Skype, controllare il mio esempio bot Skype su GitHub qui:

https://github.com/nwhitmont/botframework-skype-support-dev/blob/master/server.js