Search code examples
skype-for-businessucwa

UCWA: makeMeAvailable returning forbidden and API confusion


I'm trying to create a small console application sending and receiving message from SFB.
I started by using the code from https://github.com/tamhinsf/ucwa-sfbo-console and followed the readme.md for creating the app in the Azure Management Portal (I assigned all the delegated permissions just to be sure).
All already included API work (so I'm sure I'm logging in correctly), but when I try to invoke makeMeAvailable to receive IM call (looking at https://ucwa.skype.com/documentation/KeyTasks-Communication-IncomingIMCall) I get the following response

{"code":"Forbidden","message":"The requested operation isn\u0027t allowed."}

My post data is the following

 {"SupportedModalities":["Messaging"]}

Which is just as the example from the ucwa.skype.com site.

I'm also finding problematic to send a message, on the skype site the https://ucwa.skype.com/documentation/Resources-startMessaging shows a call to

Post https://fe1.contoso.com:443//v1/applications/970/communication/startMessaging

but on my application response embedded.communication._links.startMessaging is /messagingInvitations and not /startMessaging. The documentation on https://ucwa.skype.com/documentation/KeyTasks-CreateApplication-3 also shows

"startMessaging":{"href":"/ucwa/oauth/v1/applications/105/communication/messagingInvitations"},

I'm quite confused over what I should do to correctly send and receive messages and the API documentation did not really help.

Thank you in advance.


Solution

    1. makeMeAvailable isn't supported yet in UCWA for Online. Probably when it'll be introduced, a new app permission will be added in AAD permissions, which will need to be granted. So, that's expected, but the documentation is indeed outdated and just referring to behavior for UCWA for On-Prem.
      See also / vote: Enable 'me' resource and controlling self user's presence in UCWA

    2. You're correct, good finding. However, POSTing on the messagingInvitations resource (which is no where in documentation), is the correct way. So following the principle of using the URIs returned by operations, and not composing URIs by convention in your code is the way to go. You can notify this by creating an issue here: https://github.com/OfficeDev/skype-docs/issues