Cortana Skill only works for developer account that created it - botframework

I built a bot in bot framework and provisioned it across Teams, in addition to the default of Skype and Web.
Then, I turned on the Cortana skill, and it worked for me for that channel.
Now, when I add users in testing via the deploy to group option, although they are able to select "Join Group", they're not actually able to use the Skill.
I tried this myself on my machine, but with a new outlook account and Cortana failed to invoke the skill.
Is there something about the accounts I add to the group that I need to configure?
These same users are able to use other skills that have been publicly published in Cortana.

I have experienced the same condition. In the end I deleted the bot / skill and recreated it from the cortana dashboard (new skill) instead of directly via botframework dashboard - worked fine and group members could then access - strange as ultimately it ends up in the same place - perhaps it was more due to the recent updates on the MS sites.

I've recently worked on a Cortana Skill, and deployed to a group for testing. You do not need to configure anything else besides providing the emails in the 'Deploy to group' option.
This however, works for MSA accounts only. Make sure that other members of your group are using their live/outlook account.

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.

Proactively Install / Push Apps in Teams for Multiple Users

I have a query regarding, How to Proactively Install / Push Apps in Teams for Multiple Users ?.
We have added our Bot Application as part of Teams App Catalogue, and I followed below document regarding Manage App Setup Policies in Microsoft Teams to install apps:
https://learn.microsoft.com/en-US/microsoftteams/teams-app-setup-policies?WT.mc_id=TeamsAdminCenterCSH#install-apps
Though above link clearly states that it automatically installs apps for users, but when we follow above link it only adds application as part of Teams App Catalogue.
So just wanted to know that does installation here mean, only adding in App List and not installing as such on user machine ?.
The other method we can follow is to create a custom script and use Graph API queries as described in below link:
https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages#proactive-app-installation-in-teams
So wanted to know as per Microsoft, what is the recommended way of Pushing Bot App to multiple users on MS Teams. Can this be handled with Teams Admin Center ?.
Any help or guidance on the approach to achieve proactive app installation in Teams would be great.
Thanks In Advance!!!..
Both of these approaches should work fine. App Setup Policies is the easiest though as you don't need to write any code, but be aware that it can take a while for the policy to apply (I think up to a day or even two). There's a way to force it to update, I think if the user signs out of Teams entirely and signs back in.
I tried with Teams Admin Center and tested 2 scenarios:
1.) For User Already Logged In
2.) For New User Logging the First Time
The policies take time to be applied / be effective for users (not immediate). In my testing, I logged in after ~2 hours for New User and waited ~2 days for already logged in User. We have to test the same for your respective environment. Also these are not Standard Timelines, and we have Test in our environment accordingly.

Chat Bot is not working - HTTPS internal server error

I have created a sample Echo bot for testing i've followed the given instructions in the MS tutorial site.
Created a web app service
Downloaded the MS bot framework v4 SDK - Echo Bot
Got the Publishing profile
Published the bot using visual studio
tested the chat bot When i test my bot in Test in Web Chat option in bot channels registration.
before that i tested in bot framework emulator, it was working fine as expected.
I checked the microsoft appid and password, it is all fine.
what am i missing to look on. can anyone please guide me.
Finally I've found the issue, though it a minor mistake. I wanted to update it here since many new Azure Bot users might do this mistake like me.
It was due to the option which i selected in while doing the app registration, After selecting the third option for Who can use this application or access this API?
It always good to select Multitenant option to make the bot to work for everyone.
If your requirement is restricted to one particular tenant then you should select the first option. But it is not in my case.
Accounts in any organizational directory (Any Azure AD directory -
Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)

Is there an easy way to add custom bot to Teams conversation

We want to easily add our custom bot to the conversation window when an user ping us. Currently we have to upload the zip file of the bot to the conversation every time. Ideally the bot should be found by searching in the "Add People" - just like how the real people been added. Several questions:
I noticed that the custom bot can be published. However, we don't want it to be published publicly, it needs to be Microsoft internally. Is it possible?
If the bot got published, can we add the bot to a conversation just by searching in the "Add People" box? If not, is there anyway to achieve this?
Thank you!
If you want to publish the bot for your organisation only, you can publish it in your tenants app catalog. You need to be a global admin or have the teams service admin role enabled to publish apps for your organization.
Publish apps in the Microsoft Teams Tenant Apps Catalog
As far as I know, this isn't possible yet. However when people search for your bot in the topbar, they can add the bot to a team or to their personal workspace.

Cortana skills bot invocation name not being discovered after publishing

I added a new Bot i am developing in .net via the Bot Channels Registration option in Azure. I then added a Cortana channel to the bot via the Knowledge Store. Although I can test my Bot using Test in Web Chat, I cannot get Cortana to talk to my Bot. When Cortana does understand my accent she just opens up a web page and my break point in my code is never reached. Looking at the Channels Tab in Azure and clicking on edit for the Cortana channel, I see my invocation name as being My_XYZ and the option to edit this is disabled. However in the knowledge store I can edit the invocation name which I have changed to My ABC (with space).
The bot is currently published to Self for testing and I can see that its ID points to the name of my bot in Azure i.e. some_team.my_xyz
I am using a secure ngrok tunnel on my localhost and this works ok as stated with the chat bot.
Does anyone know if there is a step missing from the docs? (some links in the docs give 404 errors) and why i cannot change the invocation name of my bot in Azure. Also do I need to have the same invocation names in the Bot and the Cortana channel or does Cortana handle this mapping for you.
I see my invocation name as being My_XYZ and the option to edit this is disabled.
I find that if I’m an administrator on the subscription, the Invocation name option is editable.
But if I’m use another account with Owner role, the Invocation name option will be disabled. I’m not sure if it is portal issue, if possible, you can try to report it on Azure portal.
do I need to have the same invocation names in the Bot and the Cortana channel or does Cortana handle this mapping for you.
Based on my experience, we need not to specify same invocation name on Azure Bot portal and Knowledge Store portal.
In my test, I set invocation name with “helloworld” (not same as invocation name on Azure Bot portal “helloworldchat”), I can invoke helloworld as expected.
My problem was solved here on Github https://github.com/Microsoft/BotBuilder/issues/3991
To sum it up, Cortana Skills is currently only available to the US and since I live in the UK I will have to wait until MS decide to release it to the rest of the world. To overcome this you can change the region of your PC to the US. This allows you to test your app. However, note that Cortana does not fully support adaptive cards.
I only hope that Bot development does not go the same way as apps for Windows 10 did and that MS update the desktop and Azure emulators to support the latest development versions of adaptive cards etc quicker than they are and to release Cortana Skills to developers outside the US. I was hoping that the bot framework would use the same model of development and release that .netcore did.

Resources