botkit | open source developer tool for building chat | Bot library
kandi X-RAY | botkit Summary
kandi X-RAY | botkit Summary
This repository contains the core Botkit library, as well as a series of plugins and extensions for connecting Botkit to messaging and chat platforms and other tools in the bot building ecosystem. Botkit is part of the Microsoft Bot Framework and is released under the MIT Open Source license.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of botkit
botkit Key Features
botkit Examples and Code Snippets
Community Discussions
Trending Discussions on botkit
QUESTION
After successfully connecting my locally hosted (botkit-based) bot to Microsoft's Bot Framework Emulator (using a localhost address for the messaging endpoint), I'm now trying to connect it to the framework's webchat (using an ngrok's hostname for my local bot). However, I get an 'unauthorized' when webchat tries to connect. More on my bot:
- The bot integrates with the Bot Framework via botkit's own Botkit Framework Adapter (see https://github.com/howdyai/botkit/blob/main/packages/docs/core.md#using-bot-framework-channels for details) *The bot is hosted locally (dev version, which is the one I'm trying to test), and exposed via ngrok. Its production version will be hosted on AWS.
Here's what I've tried so far:
- Using methods #1 and #2 described in https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-webchat?view=azure-bot-service-4.0 to embed the webchat using an iframe with the provided webchat secret and also a token (obtained separately via POSTMAN).
- Using a modification of method #3 in the same web page, in which I obtained a Direct Line token instead (via POSTMAN) and then tried to use it in the html provided in there.
- I've also tried 'Test in Web Chat' in the Azure console.
In all those cases my bot's own log displays the same: "Experienced an error inside the turn handler Error: BotFrameworkAdapter.processActivity(): 401 ERROR Error: Unauthorized. Invalid AppId passed on token: blah".
The browser console shows different results for the last case compared to the website embeds as follows:
- (website embeds), I see a 502 in the browser's console, which I believe is expected given the 401 response from the bot (as explained by other sources).
- (Test in Web Chat'), I see several other errors in the browser web console in addition to the 502. One of those errors makes me think that perhaps 'Test in Web Chat' does not actually support non-Azure hosted bots (MsPortalFx/Base/Base.Net Base.Net: Security issue: Request to send auth token to untrusted domain 'myngrokhostname.scm.azurewebsites.net'. Only a fixed set of domains should be configured to receive auth tokens).
So here are my immediate questions:
- Does the 'Test in web chat' feature require an Azure-hosted bot?
- Given that I don't specify myself an appId and password when configuring the webchat channel (since it gets automatically configured), how could I be getting an error indicating that the wrong appId is being used? (note: the appId and password are part of the bot's adapter configuration as explained in the link I shared earlier; this is the only spot in which I entered them, and they were copied directly from the AzureBot configuration console)
Aside from the above questions, do you have any other suggestions on what could be wrong/missing in my environment? BTW, by now I believe I have read all of the similar posts that refer to 'unauthorized' errors while using webchat and none of them has helped so far, including those referenced in the first comment provided below. For the record, here are the posts (not mentioned in the comment) that I've also read:
- There was an error sending this message to your bot - Test in Web Chat
- Test in Web Chat typing message returns "Not found" HTTP status code after deploying bot to Azure
- Getting a 403 while connecting local bot to local WebChat client (works with Emulator though) (note: a comment in the last post suggests that I should be looking into offline-directline to get this to work; I may try this although I don't understand why it should be needed). Any further help would be much appreciated.
ANSWER
Answered 2022-Feb-03 at 12:27• I will suggest you to please check the below Github community forum for details on your issue regarding the turn handler and the ‘BotFrameworkAdapter.processActivity():401 ERROR’ in which they state that they tried to connect through two types by local bot: -
- By entering the URL, appID/password
- To select the bot which is defined by bot file from "My bots" form in the Welcome section.
In the above two types of connections made, the 1st one always fails while the 2nd one executes successfully always. So, according to them, they are suggesting downloading the latest version of Emulator over.
https://github.com/microsoft/BotFramework-Emulator/issues/1417
Kindly refer to it as it may be helpful to you. And as far as ‘Test in webchat’ feature is concerned, it does require an Azure hosted bot because the Bot Framework Emulator that runs on the local device has the Azure Bot service endpoint link embedded in its runtime configuration for which during the execution of the emulator, we have to enter the AppID and password of the Azure Bot service to connect to.
https://docs.microsoft.com/en-us/composer/test/test-bots-in-web-chat
QUESTION
I'm trying to create a very simple Slack bot using botkit and Google App Engine, but for some reason I keep getting 401 errors any time I message the bot. The weird thing is that the Slack Event Subscription URL (the one ending in /api/messages) validates correctly, and I get a 200 response in GAE logs and validation within Slack.
But whenever I actually message the bot it always gets a 401 error with no message explaining the error at all. I've tried various combinations of the code below, and have now stripped it down to the bare minimum as found here. Aside from dependencies and a code to decrypt credentials (which I've verified is working as expected), this is my full code at the moment:
...ANSWER
Answered 2020-Oct-07 at 10:41I had same issue but figured out the problem.
I had been using Client Secret as clientSigningSecret
But I should use Signing Secret !
QUESTION
Using Botkit to create slack bot but can't connect to Mongo Atlas for storage. Nodejs backend. Using Botkit-storage-mongo
Code:
...ANSWER
Answered 2020-Jan-21 at 05:49This issue had nothing to do with botkit.
Needed to update connection driver version in mongo atlas dashboard.
Was Node.js 3.0 or later driver version. When I changed that to the Node.js 2.2.12 or later version, that connection string worked.
QUESTION
How can I specify userId
in Botium connector for Botkit 4.0?
In 0.7, I was able to specify BOTKIT_USERID
in my .spec.js
file.
It was useful to test responses for different user groups.
...ANSWER
Answered 2020-Jan-07 at 16:24The Botium Botkit 4.x Connector is based on the Botium Generic HTTP/JSON Connector, so it is possible to fully customize the payload, including the user id.
By default, the message payload is composed of the message text and a unique generated user id:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install botkit
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page