Facebook Messenger Channel is not working with Microsoft Botframework - botframework

In Microsoft's Bot Framework, there is Facebook Messenger Channel. And according to the setup page, i followed everything and then have finished configuring things on both Bot Framework and Facebook App ends.
Finished setting up Facebook Webhooks and it's Callback URL (with the required Verify Token). Everything seems to be correct (Please refer to screenshots below)
But when i start trying to chat to my page (from my FB Admin Account), there's no reply, nothing.
What seems to be the problem? And what should i be looking at, please?
Thanks all in advance.

I got it working now.
Inside the Botframework's "Enter your credentials" section, there's Facebook Page Id field to enter, but i didn't know there's a specific Page ID for a Facebook Page (which can be found under "About" tab). In fact, i thought it was the one we used in the URL (For example: https://www.facebook.com/xxxxxxxxxxx, and therefore: xxxxxxxxxxx) but it was wrong.
Then, deauthorized and resubmitted credentials from Botframework.
Thanks everyone for all the helps.

Also, can you verify that your bot works correctly from the test panel and webchat control in the Bot Framework portal.
You may also wish to deauthorize and resubmit credentials.
it's odd that you're not seeing any errors in the bot framework portal for the Facebook channel, that would almost imply to me that the messages aren't making it from the Facebook messenger chat service to the Bot Framework. It looks like you've set the callback URL correctly (from the unmasked part).
You can also hook up Azure App Insights and give us the instrumentation key (via the portal) and we will send any error events to your app insights instance.

Related

Microsoft Bot Framework - bot missing from "Bot Framework" tenant. How to add?

Half a year ago we created a bot using the App Studio app from Teams. This worked well and the bot is running happily. Apparently starting 2022 App Studio "evolved":
So, this time using the new "evolved" Developer Portal, we registered a similar bot in another environment.
Just to end up with a bot that somehow is not registered in the Microsoft-internal bot framework tenant. I cannot say how we ended up in this state but there is a troubleshooting site that we can use to verify our failed state. The result of this simple call looks like this:
For googleability:
AADSTS700016: Application with identifier
'68dafaa0-5755-4433-8f47-3e174c5ed131' was not found in the directory
'Bot Framework'. This can happen if the application has not been
installed by the administrator of the tenant or consented to by any
user in the tenant. You may have sent your authentication request to
the wrong tenant.
Now the question: how can we add our bot to this "Bot Framework" tenant? And: which of the button clicks in the Dev Center and/or Bot Framework portal do the magic of adding the bot? The troubleshooting article unfortunately gives no advice on how to fix this situation.
We also tried removing the bot via the Bot Framework portal and re-created it with the same IDs and had the hope this fixes the situation. Unfortunately not.
Note: everything else is in place and looks like our other functioning bot. A teams app containing the bot, the Azure AD app registration with the bot ID, the bot in the bot portal, correct client secret. Everything seems correct except that the bot ID is missing from the Bot Framework tenant.
Just ran into the same issue. It looks like you have your bot registered into your tenant (and not the global bot framework). So you can get the access token by changing the URL to the following (replacing with your tenant id):
https://login.microsoftonline.com/YOUR-TENANT-ID/oauth2/v2.0/token
Just tested this and was able to get an access token. Now will that token actually work the same way using the scope is another matter. You may need to change the scope to:
https://graph.microsoft.com/.default
As of now I am getting a token either way
To generate a bot directly into the global tenant you can go to the following URL and click on "My Bots" and then "Create". Any existing bots you have should also appear here:
https://dev.botframework.com/

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.

Microsoft Teams proactive messaging in activity feed

I have a requirement that my bot should receive a notification from an external system and then it needs to send notification to Teams' logged in user's activity feed.
I followed https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/16.proactive-messages, it works on emulator. I deployed above app on on-premise IIS server (with https support) and then registered on https://dev.botframework.com/ by providing botid generated through MSTeams App builder. Now, when I sideloaded this bot in MS Teams, it does not send proactive message.
I am new to Bot framework hence steps by steps instructions and sample code will be much appreciated.
You haven't given a lot of detail in your question about your actual setup, or the code you're using, so it's hard to really answer, but I have posted a few time recently about pro-active messaging. Here's one with a bunch of detail, in C#, so hopefully it can help: Programmatically sending a message to a bot in Microsoft Teams - just see my answer in that page. If that doesn't help, please try describe your current scenario better, and what you've tried.

Passing an external user ID through MS Bot Framework

I am working on a Skype bot, using Microsoft's Bot Framework.
I have an external website, where a user can create an account, obtaining a userID. I would like to have a button on my website that allows me to link their account to a Skype conversation.
The only way I can work it at the moment is by having the Skype bot ask for the user's email, then the user has to go onto the website and confirm that that was them on Skype. Not a good UX.
I know Telegram lets you do what I want with "deep linking", and Kik can do it by scanning QR codes. Facebook Messenger can do it by including the Facebook JSSDK in the page with a "Connect to this bot" button.
Is there any way to do this on Skype?
Use the "Sign-in Card" workflow to have your users authenticate with your website before proceeding with the Skype bot conversation.
The Sign-in card enables a bot to request that a user sign-in. It typically contains text and one or more buttons that the user can click to initiate the sign-in process.
For documentation and code example, see:
https://learn.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-add-rich-card-attachments#add-a-sign-in-card-to-a-message
Blog article showing sign-in card walk-through:
https://tsmatz.wordpress.com/2016/09/06/microsoft-bot-framework-bot-with-authentication-and-signin-login/
Additional code examples:
.NET SDK - https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/cards-RichCards#sign-in-card
Node.js SDK - https://github.com/Microsoft/BotBuilder-Samples/tree/master/Node/cards-RichCards#sign-in-card
Use individual deep link mechanism for each bot (e.g. telegram) that you wish to implement.
How to setup Telegram webhook the simple way.
Telegram webhook requirement
HOWEVER, it doesn't work on Skype.
Microsoft bot builder deep linking
he only way I can work it at the moment is by having the Skype bot ask for the user's email, then the user has to go onto the website and confirm that that was them on Skype. Not a good UX.
This is the only way so far for Skype.

Web Chat doesn't work, but Telegram / Facebook / Emulator etc. work fine

I have a chatbot created with the MS bot framework. It works great in Telegram, on the portal, facebook messenger, and the emulator - but the Web Chat doesn't work.
It will connect and let me type things in, but none of the responses get back to the web chat window. I even see the message coming in and being sent back from my chatbot in the server logs, but somehow it doesn't make its way back to the web chat.
Any idea why?
The bot is called WffBot, and the web chat link is here.
It turned out that I had the address and name in the from section of the JSON of the response switched. While, for whatever reason, none of the other messaging systems minded this, the WebChat just ignores the responses.

Resources