Unable to select QnABot in bot template (web app bot) - botframework

I'm trying to create a web app bot in the Azure Portal, but I can't select the QnA template. It's supposed to be like a selector but appears just as text.
How can I connect my bot to the QnA Maker service?

It looks like you're trying to create the web app bot directly in the Azure portal. You can do this, and hook up your QnA knowledge base (KB), but it sounds like you want a more simple approach. To do this, you need to start from within the qnamaker portal itself, from the "Publish" screen of your knowledge base. First Publish the KB, then you'll see the screen with a "Create Bot" button - it works as described here (I've just tested to confirm).
When you start from this "Publish" screen, the Web App Bot has a "QnA Auth Key" section - see the bottom of this screenshot:

Related

Teams channel in Azure Bot Service not working

I created an Azure Bot Service. When I test the service using "Test in Web Chat" it works as expected. When I add the Web Chat channel and use the Web Chat URL, it works as expected.
However, when I add the Microsoft Teams channel, it does not work as I expected. The Health Status shows "Healthy" (in "Channels (Preview)") and "Running" (in "Channels"). When I select "Open in Teams", I am redirected to Teams, but I do not see the bot as a user/bot I can chat with. I watched a video showing just that behavior as I was expecting, but the link only opens my Teams. I only have one other user in Teams and that user shows up. No sign of the bot. What am I missing?
I tried using the "Get bot embed codes". I put in the URL for the Mstreams href and instead of sending me to the bot user as I expected, I am redirected to the other user on the account (not the bot). What am I missing?
I've tried this using the "Channels" and the "Channels (Preview)" sections with the same results.
If relevant, I am still in the trial period with Azure and have not upgraded, but nothing says this should be an issue.
From all I can tell, I'm logging into the Azure portal and the Bot Framework portal with the same account as my Teams account. I'm using latest updated version of Chrome.
I don't think free account has anything to do with this. But the fact that the " bot embed codes" lead you to a different user, may be a configuration issue. Read Create a bot and Test and debug your Microsoft Teams bot in the Microsoft Teams documents for more information.
If you have successfully deployed to teams channel (teams channel registration), as per docs Copy the https part of the code that is shown in the Get bot embed code dialog.
For example, https://teams.microsoft.com/l/chat/0/0?users=28:b8a22302e-9303-4e54-b348-343232
In the browser, paste this address and then choose the Microsoft Teams app (client or web) that you use to add the bot to Teams. You should be able to see the bot listed as a contact that you can send messages to and receives messages from in Microsoft Teams.
Alternately, In-order to test them in teams you need to take the app id from the Configuration page of the bot.
Once you search with the app ID in teams you would be able to see this bot as a contact in Microsoft Teams.
Refer:
Create a Teams app package and upload your app to the Teams client for testing. Learn how
Publish your bot as a Line of Business app in your organization's Teams Tenant App Catalog. Learn how
Publish your bot as an app in the Teams App store. Learn how
I think I have found the answer, though I'm still trying to retrace my steps to make sure this is accurate. I will update here if I find anything more of value.
Despite little/no documentation to this effect, bots apparently do not work in the free version of Teams. You have to at least:
create a developer version of Microsoft O365 (E5 license) (and go through all the rigamarole to get it setup properly)
add at least one more user to the organization
then open Teams
Then, I used the embed URL to get the bot to show up. (Again, the same process did not work with my free Teams account even with another user added to it).
For the record, I didn't need to change any admin settings once the three items above were completed.

Using azure bot services in Teams : how to send files to bot

I am new to development in teams and bot framework.
I have a botframework bot which is up and running on Teams. I did not use the app studio, I directly exported it from azure bot service.
I want to send an image from the mobile phone (like a selfie). It seems you can do this with any contact you have but not with bots. Right now, sending files to bots seems to be impossible on my version of Teams. You can send an image via bing, that's all.
From the documentation below, it says: "Sending and receiving files to bots on mobile devices is not supported."
https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-and-receive-files?tabs=dotnet
On my computer, it seems as well that it is not supported. Anyway, I am looking for a solution to use my phone camera to share a selfie.
I came across this thread that discusses a way to add a button to prompt the user to upload a file on the client-side.
Prompt User to Upload file in Dialog Flow with MS Bot Framwork v4
Is this possible to do this in Teams rather than on Webchat?
I am new to this framework, so any insights on the above would be greatly appreciated!
This is possible and we actually just released a sample for it (Node / C#). Note, however, that I don't believe you can trigger the user's camera...only ask for them to upload an image file.
The important part that you're likely missing is step 7 (you need a manifest.json that contains "supportsFiles": true):
This step is specific to Teams. Edit the manifest.json contained in the teamsAppManifest folder to replace your app id from Bot Framework everywhere you see the place holder string <>. Zip up the contents of the teamsAppManifest folder to create a manifest.zip. Upload the manifest.zip to Teams (in the Apps view click "Upload a custom app")

Load 1:1 bot as tab in Teams

How can I load my 1:1 bot (so; a bot that doesn't work inside a channel) as a tab in Teams? The default manifest options only provide ways to set it as 1:1 (but then each user would have to add the bot manually) or as channel-bot (but that's more for commands rather then discussions).
So looking for something like this:
http://prntscr.com/nqzh37
Bots are supported only as part of conversation. This could be personal or team conversation. Currently, what you are looking for is not possible in Microsoft Teams.
You can publish an app to the Tenant Apps Catalog from where individual could install it. We are working on feature for Tenant admin to install certain apps for all the users.
One possible option is to 'Add a tab' and choose 'Website' and link to your bot. This would require you to run your bot in web chat, but in this way the bot would not be integrated into Teams, wouldn't listen for #mentions (as it wouldn't have been added as an app) yet would be accessible to any user who has access to that Teams channel. (This example links to "mockbot", accessible via the BotFramework-WebChat GitHub repo).
Keep in mind, this loads the website hosting the bot. In this example, mockbot utilizes the entire web page. Therefore, we only see the bot. If the bot is embedded with other content on the page, then the other content will be displayed, as well.
Click the '+' symbol:
Choose 'Website':
Give the bot/app a name and add the link:
Enjoy bot mayhem:
Hope of help!

can't send messages to created bot?

Okay, so, I'm trying to create a QnA bot with Azure and Microsoft Bot Framework. I think I managed to create it and got it linked to Teams, but when I go to Teams to test it, it gives me this message in the chat box:
"Sending new messages to this bot has been disabled by your administrator."
I'm not sure what I did wrong or how to fix it. I'm also not sure how I can link a bot I made with QnA Maker into the bot I just created with Azure. The tutorials I found online all talk about using Bot Service (preview) in Azure, but I can't choose that one from the available list.
Thanks in advance
Your Tenant Admin needs to go to the Teams Admin Centre:
Open the Teams Apps pulldown
Select Permission Policies
Click the "Org-wide app setttings" button in the top RH corner.
This shortcut will get them there: admin.teams.microsoft.com/policies/app-permission
From Org-wide app settings turn on one (or both?) of "Allow third party or custom apps", or just "Custom apps" (I'm not sure which it is these days) and then click Save.
Be aware that replication delays could take some hours or even overnight before this change manifests to you as a user though.
This is because your Office 365 admin has not enabled side-loading of Apps in MS-Teams for your user.
Ask the Admin to allow Side-Loading of Apps for you in the Admin console on the O365 dashboard.
I had the same problem. The tutorial is old
In Azure Portal, When creating, try to go to
AI + Machine Learning > Web App Bot
And Select Q&A if you are using QnA.
Then in Application Settings, scroll down and you will find
QnAKnowledgebaseId(1)
QnAAuthKey(2)
QnAEndpointHostName(3)
You put all the information you get from QnA
POST /knowledgebases/(1)xxxxxxxx/generateAnswer
Host: (3)https://xxxxxx
Authorization: QnAEndpointKey (2)xxxxxx
Content-Type: application/json
{"question":"<Your question>"}
I've had the same problem, it seems like the administrator needs to allow sideloading of apps.
see here:
https://learn.microsoft.com/en-US/microsoftteams/teams-app-permission-policies

Does a Bot Framework bot need to be registered every time it changes, or only once?

I have created Bot 'MyFirstBOT' where my backend is QnA maker application data. I have given a name to this bot called 'TestJPBOT' and I have enabled the Teams channel for this bot so that we can use this bot on Teams applications. Right now in our organization we are working to register this bot with Microsoft so that we can start using it. I would like to know going forward if I want to make any changes in the bot, like changing its name, profile picture, or something similar, do I need to reregister it every time with Microsoft? Or is there no need?
Per my simple testing using Azure Bot Service env, we don't need register again after change our bots.
Actually, register your bot is populate your bot on Microsoft, equivalent to create a index for your bot I think. You change your bot's profile or code, should not effect the index.

Resources