I have a working, but fairly simple bot. I have custom actions that go to a MYSQL database and retrieve information which gets posted back to the user in response to those questions.
This is all working, with nothing in my credentials.yml except for the default:
rasa: url: “http://localhost:5002/api”
I have since created an outgoing webhook on our Mattermost server, and added the following to the credentials.yml
mattermost: url: "https://mattermost.server/api/v4" team: "rebellion" user: "actual.username" # actual username of your bot user, not displayname pw: "actual.password" webhook_url: "https://ws-test/webhooks/mattermost/webhook"
(identifying information redacted, obviously).
Anyway, I copied that over to the server and in one session I run the action server, which results in the following:
2019-11-20 15:29:49 INFO rasa_sdk.endpoint - Starting action endpoint server... 2019-11-20 15:29:49 INFO rasa_sdk.executor - Registered function for 'action_get_sentiment'. 2019-11-20 15:29:49 INFO rasa_sdk.endpoint - Action endpoint is up and running on http ('0.0.0.0', 5055)
Then, in another session I put type rasa run, which gives me the following:
2019-11-20 15:30:44 INFO root - Starting Rasa server on http://localhost:5005 2019-11-20 15:30:48 INFO absl - Entry Point [tensor2tensor.envs.tic_tac_toe_env:TicTacToeEnv] registered with id [T2TEnv-TicTacToeEnv-v0]
If I instead to rasa shell, I can talk to the bot, it calls the custom action, goes out to the database, etc. Everything is working fine.
However, with rasa run, and the mattermost credentials, which should be listening to “https://ws-test/webhooks/mattermost/webhook” it’s not listening for that traffic. Mattermost says connection refused, postman says the same, and netstat -a on that machine doesn’t show anything listening that would suggest it’s that task.
Is there a simple way to test, locally, on that machine to make sure it’s running? I can’t tell if it even acknowledges that it’s supposed to be listening to Mattermost traffic.
In addition, the Mattermost documentation suggests when you create an outgoing webhook that you verify that the key you’re given matches in each request. The password I’ve got in the credentials is for that user, not the “key” according to the Mattermost outgoing webhook. Is there a way to make that check happen in all intents? Or can I only check that in my custom action?