Web chat and telegram channel not working - botframework

I have built a bot in massively.ai and set it all up in the Microsoft Bot framework. I have submitted it for review and it has been reviewed and published.
It is working fine in Skype, but does not work on the "web chat" channel or the Telegram channel. It also doesn't work in the test area on the MS Bot landing page

You can debug locally by clicking the "configure continuous integration button" in Azure. You will get a .zip file with the source code and then you can open it in VS or your editor of choice.
But since you are using Massively.ai what you could do is use or create a Trace class and use it in the Catch section of a Try/Catch to track and store errors and then show them in the Bot Framework emulator log. That might give you more information about the problem.
catch (Exception e)
{
Trace.TraceError("Some error in class X" + e.ToString());
return null;
}
To test the same bot in the emulator, you will need to find the end point, application ID and password for the bot service. The Settings tab only provides the partial message endpoint (ending with three dots). Therefore you will need to go to the developer site, https://dev.botframework.com/. Click on the Edit link. You will find the message endpoint there. Copy the entire URL and enter it in the emulator. Also, copy and paste the application ID and password from the bot developer portal.
You will also need to download the free tool, ngrok, which creates a tunnel between the bot hosted remotely (in this case on Massively.ai) and your computer behind the firewall. Click App Settings in the emulator. Browse to the location where ngrok.exe is located. Save the setting. The utility will be launched automatically from the emulator. At this point, the emulator is ready. Click “Connect” or the refresh icon. When you type something in the input box, You will see a response:
 

Related

MS Teams Messaging Extension submitTask failing with "v3 agent not found" error

I'm creating my first Microsoft Teams extension. For now I'm just trying to get the basic plumbing for a messaging extension working. I'm trying to build an extension which will allow a user to search for content in my service and then return a card into their compose window in personal and Teams chats.
I've tried to follow the basic guide ( https://learn.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/create-messaging-extension ) for creating a messaging extension using App Studio. I've setup a bot as it describes, and I have built a dummy echobot endpoint for the bot (using Ruby). I am able to "chat" with my bot directly in the Teams client and it is able to respond.
My messaging extension defines an action based command with a taskInfo with a web view URL to render and a fetchTask set to false. I've written a basic static HTML page for this and included the teams-js library. The web view loads and the teams-js library initialization callback is called. I have a submit button which calls microsoftTeams.tasks.submitTask which as I understand it, should be calling my bot with a "composeExtension/submitAction" message to which I would respond with the card. (Based on https://learn.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit?tabs=json )
I've tried installing my extension in Teams through the "Upload a custom app" option both as a "for me and my teams" and "for " but still have the following issues.
When I open my extension in the Teams client from the compose area and click this submit button in my iframe content, the submit I get a "Unable to reach app. Please try again" error displayed. In the dev console, I can see that the response to the "invoke" http post is {"errorCode":404,"message":"V3 agent not found."}
No traffic is actually sent to my bot during any of this process.
I saw this older post - Compose extension is throwing error : V3 agent not found . The https://dev.botframework.com/bots/ it refers to seems to be outdated, but in the Azure "Bot Channels Registration" console, I have gone to Channels and added "Microsoft Teams" (which I believe is the new equivalent).
Has anyone seen this happen and figured out what was going on? Much thanks!
Here is sample code for composeExtension/submitAction for Bot SDK V3. Make sure you pass the bot id and command text in taskInfo object.
case "composeExtension/submitAction":
string commandid = JsonConvert.DeserializeObject<Models.TaskModuleSubmitData<string>>(activityValue).commandId;
taskInfo = GetTaskInfo(commandid);
taskEnvelope = new Models.TaskEnvelope
{
Task = new Models.Task()
{
Type = Models.TaskType.Continue,
TaskInfo = taskInfo
}
};
return Request.CreateResponse(HttpStatusCode.OK, taskEnvelope);
Hilton had the right answer.
I had grabbed the Subscription ID from the Bot Channels Registration page instead of the App ID from the Azure Active Directory -> Apps Registration page and used that in the messaging extension manifest as the "botId" in the composeExtensions array. After fixing that I'm now getting messages submitted to my bot backend.

BotFramework - No recording icon in Bot Emulator

Working on a voice bot that will take as input the voice, I have two concerns.
Technology(.net), Framework(BotFrameWork v4)
The Bot Emulator doesn't contain the recording icon, how to bring that. If by putting the microsoft app id and password, It shows up then where to get these credentials for local development and testing.
How to give the response input to the bot, v4 documentation is a way too confusing for me, I would like someone to tell me specifically what im looking for.
Thanks
You need to add your app id and password to the development endpoint in your bot file to enable the microphone feature on the emulator.
If your bot file has a production endpoint, you can likely find the app id and password there. Most bot files are encrypted, so I would recommend retrieving the id and password through the emulator. In the emulator, right click on production under the Endpoint section on the left and then select Edit Configuration. This should open a window where you can copy the app id and password.
If your bot file does not have a production endpoint and you don't have the app id and password stored somewhere else, you will have to follow this guide to register your bot on the Azure Portal.
Now that you have the app id and password for your bot, you need to add them to the development endpoint in your bot file. Once again, most bot files are encrypted, so open your bot in the BotFramework Emulator. Right click on development under the Endpoint section on the left, and select Edit Configuration. It will open a screen where you can add the Application id and password that we retrieved in the previous step.
Now run your bot and connect to it in the emulator. You should be able to use the microphone to talk to your bot. When the user talks to the bot, the emulator will convert the user's voice to text and will send the message to the bot as an activity like any other interaction the user has with the bot.

Debugging published bot

I'm trying to find out what is wrong with my bot. This is a bot meant as back-end for a Cortana skill. The bot is built with the bot framework version 3.8.0. I'm running it on an Azure Bot Service instance (Azure Function).
Locally, everything works as expected. I'm using the bot framework emulator to test everything; all great. Now I publish the bot to Azure and invoke it using Cortana. Cortana replies there's an issue with the bot.
When I check the diagnotics log in Azure, I see the following:
2017-07-18T08:11:34.252 Exception while executing function: Functions.messages
2017-07-18T08:11:34.252 Invalid channel data.
2017-07-18T08:11:34.272 Executed 'Functions.messages' (Failed, Id=e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed)
2017-07-18T08:11:34.272 Invalid channel data.
2017-07-18T08:11:34.272 Function had errors. See Azure WebJobs SDK dashboard for details. Instance ID is 'e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed'
2017-07-18T08:11:34.272 Invalid channel data.
2017-07-18T08:11:34.315 {"id":"6f095c10-d9e8-4ad0-a6a8-caf052288f8b","requestId":"2f4c950c-2459-4467-8579-4f3b5bc45e6b","statusCode":500,"errorCode":0,"messsage":"An error has occurred. For more information, please check the logs for error ID 6f095c10-d9e8-4ad0-a6a8-caf052288f8b"}
2017-07-18T08:11:34.315 Invalid channel data.
2017-07-18T08:11:34.194 Function completed (Failure, Id=e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed, Duration=4626ms)
2017-07-18T08:11:34.252 Exception while executing function: Functions.messages. Microsoft.Bot.Connector: Invalid channel data.
So "invalid channel data" seems to be the main error here, but that doesn't tell much. I enabled all logging on the server and downloaded + inspected these; there's nothing more useful in there.
I also attached a debugger to the remote process. I see my dialog method being called and finished without any problem. So the issue doesn't appear to be in my code, but in the framework somewhere? But I have no idea on where to go next.
BTW I also tried updating to the latest version of the SDK (3.8.5) but it appears that Microsoft.Bot.Builder.Azure has a dependency on version 3.8.0 cause it won't run after upgrading due to a assembly load error (it's trying to load 3.8.0).
You can debug your Azure published BOT locally. This will help you to find the real issue.
I am adding the steps how to debug Azure published BOT in locally.
Enable Debug in Azure Application setting:
Open Azure Portal.
Click on Azure Web Bot.
Click on Application Settings, In the Debugging section On Remote Debugging and select your Visual Studio Version.
enter image description here
Get Publish Settings:
Click on All App service Settings
Click on Get publish profile to get the publish setting with all user name and paths. It will download the settings.
enter image description here
Click on the Attach to process ..
enter image description here
In the Connection target: type your bot url without http://.
Example: yourbotname.azurewebsites.net:4022
--Click on Find Button.
--This is asking you to give username and password. You need to get your azure username and password from publish file.
enter image description here
Now run your Web App or Cortana to debug your BOT and the get real Error.

Creating a chat connector for communicating with the Bot Framework Service

I am trying to implement a bot in my website using the botbuilder framework for node.js. The function builder.ChatConnector() get the parameters appId and appPassword, does any one knows where can i found these appId and appPassword? It isn't clear for me in the microsoft documentation. The function is shown above:
function builder.ChatConnect
BotFramework documentation
You can find this information when you create your bot in Azure Bot Service, or when you proceed to register your bot at the dev portal.
Here's a brief walkthrough for registering through the dev portal with the minimum requirements. You'll need to fill out the name, bot handle and description for the bot as indicated below:
After this, you can scroll down and click on the button that says "Create Microsoft App ID and password".
Once you click on the button you'll be taken to a page with your bot name, your newly-generated App ID, and another button that allows you "Generate a password to continue".
After you click the button a small window will pop up with your password which you need to keep track of as it is only shown once!
NOTE: For developing and testing using the Emulator, you don't need this information just yet. You only need the AppID and password when you are making your bot public facing/deploying it.
You need to register your bot in https://dev.botframework.com/ and there you will get those values. Check this article that explains how to do that.

Microsoft Bot Web Chat Not working but Emulator work fine

I have created a bot application and published it to azure. When I test this bot using Emulator it works fine but when I use the web chat control it doesn't show anything . I am using the correct app-secret .
The link to web chat is here . My bot is hosted on azure .Here is the link of Message Endpoint= https://bingsearchandemotionbotv3.azurewebsites.net/api/messages
The first thing to check: If you go into your bot management page on https://dev.botframework.com/bots and press the blue "Test" button on the bottom left ("Test connection to your bot"), does it indicate that the bot accepts the connection by the bot framework middleware?
If not, then there might be something wrong with your bot. It will actually give you some indications. If it's "forbidden", then you might have a problem with authentication (check your appId and appPassword). If it's an error, then your bot might have a code issue / exception.
If the connection has been accepted, check if your web chat credentials have been validated. To do so, click on the "Edit" link next to the Web Chat channel on the bot management page. Try regenerating your credentials and (most importantly) make sure you checked "Enable this bot on Web Chat" and confirm.

Resources