If you’re getting a “403” HTTP error when attempting to receive an image sent to your Skype bot, and the previous use of
message.ServiceUrl to create a
ConnectorClient didn’t work, try this more verbose version which explicitly sets the authorization header:
if (image.ContentUrl != null)
using (var connectorClient
= new ConnectorClient(new Uri(message.ServiceUrl)))
var token =
await (connectorClient.Credentials as MicrosoftAppCredentials)
var uri = new Uri(image.ContentUrl);
using (var httpClient = new HttpClient())
&& uri.Scheme == Uri.UriSchemeHttps)
new AuthenticationHeaderValue("Bearer", token);
data = await httpClient.GetByteArrayAsync(uri);
Whatever your social media tool of choice is these days, it’s almost guaranteed to be filled with images and their associated hashtags #sorrynotsorry #lovelife #sunnyday
Sometimes coming up with those tags is more work than perfectly framing your latest #flatlay shot.
In the age of amazing image recognition tech, it must be possible to create something that can help us out and give us more time to move that light source around to cast the right shadow over your meal.
Turns out, it is possible! Yay! (of course..)
In this article I’ll show you how to automatically generate image hashtags via a chatbot using Microsoft’s Computer Vision API.
Now that we are making more conversational interfaces thanks to technology like botframework, interaction with the user is no longer limited to a tap on a link or a button.
Having written language as the primary form of interaction with our systems gives significant difficulties in terms of intent understanding, but also gives great opportunities for further understanding of the user.
Intent understanding has already been tackled by the likes of LUIS; what about the user’s sentiment?
In this article I’m going to introduce Microsoft’s Text Analysis API and show you how to easily get sentiment analysis for a message coming in to your bot.
As part of Microsoft’s recent Tech Days Online, I was very pleased to be able to record a couple of short videos about botframework, LUIS, the QnA Maker, and how I have been working with JustEat to use these technologies in their Customer Help chatbot solution.
Unfortunately I wasn’t able to attend the live TechDays sessions, so instead of an hour or two of my dulcet tones you only have the pleasure of ten minutes; feel free to replay those minutes as many times as you like!
First up, a ten minute session on the JustEat Customer Care chatbot implementation:
Never forget your homework again
I have to include this bot first; it’s received a lot of press over the past few weeks, and rightly so. A great little concept from a 14 year old schoolboy who was forever forgetting about his homework. He created a Facebook messenger chatbot in Ruby and hosted on Heroku to help him (and you!) keep track of work that’s pending.
Read more about ChristopherBot on the BBC and try it out over at christopherbot.co. You can view the code (mainly Ruby) over on GitHub – annoyingly good code from someone so young! He puts me to shame..
There has been some significant progress in “deep learning”, AI, and image recognition over the past couple of years; Google, Microsoft, and Amazon each have their own service offering. But what is the service like? How useful is it?
Everyone’s having a go at making a chatbot this year (and if you’re not, perhaps you should contact me for consultancy or training!) – and although there are some great examples out there, I’ve not seen much in the e-commerce sector worth talking about.
In this article I’m going to show you a cool use case for an image recognition e-commerce chatbot via a couple of clever APIs wired together by botframework.
On February 20th to 22nd you’ll be able to join MVPs like me at the 3 day online conference UK Tech Days Online.
This is a chance for MVPs to talk about some of the cool new MS tech that’s out there, show you how to use it yourself, and give a few case studies. This year it’s all about AI, Bots, Data Science, and Azure OSS – awesome stuff!
Since I’m not able to attend this on the day of the event, my fellow Bot MVP, Gary Pretty, will be accompanied by the talented James Mann (no doubt a Bot MVP in the next round of awards!) for a couple of sessions on Day 1 all about BotFramework, LUIS, and the various features and tooling around that ecosystem.
So that you don’t miss out on my handsome visage (!), I’m pre-recording a short session at Microsoft over the next couple of weeks, which will hopefully be played here and there throughout the conference, where I give a very brief case study for the JustEat Help chatbot; it’ll be a tasty Bot infomercial snack – don’t miss out!
20 February 2017
- 10.00am: Data, data, data – How and where to store it on Azure?
- 11.00pm: Conversational UI using the Microsoft BOT Framework
- 12.00pm: Microsoft Bot Framework and Cognitive Services: Make your BOT smarter!
- 1.00pm: The best kept secret, Document DB.
- 2.00pm: Let’s discuss Server-less.
- 3.00pm: Keynote: Dr Mike Rys What is an Azure Data Lake?
21 February 2017
- 10.00am: Creating a PHP-MySQL web app in Azure App Service and deploying using FTP.
- 11.00am: Gain profit from Azure app service tooling as an OSS developer.
- 12.00pm: Dockerizing Your Cross-Plat .NET Development.
- 1.00pm: Communication Driven Development.
- 2.00pm: Monitoring Linux in Azure with Microsoft Operations Management Suite Log Analytics.
- 3.00pm: The Open Source World of Xamarin.
22 February 2017
- 10.00am: Bootstrapping blockchain.
- 11.00am: How IOT and data is changing lives.
- 12.00pm: An introduction to Quantum Computing.
- 1.00pm: Social Scientist Professor Bradley Love from University College London and the Alan Turing Institute
- 2.00pm: Microsoft Regional Directors panel.
If this whets your appetite for nerd knowledge, pre register now at https://aka.ms/uktechdays2017
Developing a chatbot with language understanding capabilities is a huge leap from basic pattern recognition on the input to match to specific commands.
If you have a botframework chatbot, you’re currently limited to using LUIS as your NLP (Natural Language Processing) provider via the various
If you’re trying to compare alternative NLP services, such as kitt.ai or wit.ai or even Alexa, then implementing support for another NLP service in Botframework for this can be a bit tricky.
In this article I’ll show you one approach to decoupling your botframework bot from a specific NLP solution.
As I recently mentioned, I’m now a Microsoft MVP!
I thought you might like to see what bling you get when you’re awarded the MVP, so here it is:
It’s a pretty big box, and quite heavy too..
Would you look at that picture though?! I mean, all those pens in the pots – these MVPs mean BUSINESS.
There’s a bunch of goodies in there:
A nice certificate from The Gugges with my MVP area – Data Platform (although I actually focus on BotFramework) – a hefty glass wedge and a little puck with “2017” on it which slips on to the wedge, all ready to start building up my many years of MVP-age to come no doubt 😉
There’s also a little MVP pin and a conference/ID card thingy. Finally there’s a sheet of MVP stickers of various sizes; expect my laptops and phones to be totally covered in them the next time you see me!
So there you have it – the tangible side of an MVP award. Now I just need to find a space somewhere in my flat clear enough to put this stuff…
My lovely little London Bus “app” (possibly the most basic web page you can imagine + connection to the Transport for London API) broke recently, and given the tube strike today I felt I the urge to fix it.
The error occurred when the web page called the proxy (to avoid Cross Origin Request errors there needs to be a server-side api proxy on the same domain as the html page) which calls the TFL API. The proxy is THE WORLD’S MOST BASIC PROXY
It’s just “File -> Add -> New Item -> Web Service (ASMX)”, with this single method:
public string getMeTheDataFrom(string here)
using (var response = new System.Net.WebClient())