Skype for Business - messaging Resource

messaging

  • JSON
  • XML

Represents the instant messaging modality in a conversation.

Web link

For more on web links, see Web Links.

Name Description
relThe resource that this link points to. In JSON, this is the outer container.
hrefThe location of this resource on the server, and the target of an HTTP operation.

Resource description

The presence of messaging in a conversation indicates that the application can use the instant messaging modality. When present, the resource can be used to determine the status of the instant messaging channel, to start or stop instant messaging, as well as to send a single message or a typing notification. The messaging resource is updated whenever message formats are negotiated or the state and capabilities of the modality are changed.

Properties

Name Description
negotiatedMessageFormats A list of the message formats (MessageFormat), such as plain or HTML, that are negotiated for the messaging modality of a conversation.
state The state of the modality, such as Connecting, Connected, or Disconnected.

Links

This resource can have the following relationships.

Link Description
selfThe link to the current resource.
addMessaging Starts a messagingInvitation that adds the instant messaging modality to an existing conversation.
conversation Represents the local participants perspective on a multi-modal, multi-party communication.
sendMessage Sends an instant message to the participants in a conversation.
setIsTyping Sets the user's typing status in a conversation.
stopMessaging Stops the corresponding instant messaging modality that is currently connecting or connected.
typingParticipants Represents a view of the participants who are currently typing a message in a conversation.

Events

  • updated
Resource Priority Sender Reason
messagingHighconversation Indicates that the messaging resource has changed. The application can choose to fetch the updated information.

Sample of returned event data.

This sample is given only as an illustration of event syntax. The semantic content is not guaranteed to correspond to a valid scenario.

{
  "_links" : {
    "self" : {
      "href" : "http://sample:80/ucwa/v1/applications/appId/events?ack=44"
    },
    "next" : {
      "href" : "http://sample:80/ucwa/v1/applications/appId/events?ack=44"
    }
  },
  "sender" : [
    {
      "rel" : "conversation",
      "href" : "https://fe1.contoso.com:443//v1/applications/970/communication/conversations/314",
      "events" : [
        {
          "link" : {
            "rel" : "messaging",
            "href" : "https://fe1.contoso.com:443//v1/applications/970/communication/conversations/314/messaging"
          },
          "type" : "updated"
        }
      ]
    }
  ]
}

Operations

  • GET

Returns a representation of the instant messaging modality in a conversation

Request body

None

Response body

The response from a GET request contains the properties and links shown in the Properties and Links sections at the top of this page.

Synchronous errors

The errors below (if any) are specific to this resource. Generic errors that can apply to any resource are covered in Generic synchronous errors.

Error Code Subcode Description
ServiceFailure500InvalidExchangeServerVersion
Conflict409AlreadyExists
Conflict409TooManyGroups
Conflict409None

Examples

Request

Get https://fe1.contoso.com:443//v1/applications/970/communication/conversations/314/messaging HTTP/1.1
Authorization: Bearer cwt=PHNhbWw6QXNzZXJ0aW9uIHhtbG5...uZm8
Host: fe1.contoso.com
Accept: application/json

  

JSON Response

This sample is given only as an illustration of response syntax. The semantic content is not guaranteed to correspond to a valid scenario.

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 787
{
  "rel" : "messaging",
  "negotiatedMessageFormats" : [
    "Plain",
    "Html"
  ],
  "state" : "Disconnected",
  "_links" : {
    "self" : {
      "href" : "//v1/applications/970/communication/conversations/314/messaging"
    },
    "addMessaging" : {
      "href" : "//v1/applications/970/communication/conversations/314/messaging/addMessaging"
    },
    "conversation" : {
      "href" : "//v1/applications/970/communication/conversations/314"
    },
    "sendMessage" : {
      "href" : "//v1/applications/970/communication/conversations/314/messaging/sendMessage"
    },
    "setIsTyping" : {
      "href" : "//v1/applications/970/communication/conversations/314/messaging/setIsTyping"
    },
    "stopMessaging" : {
      "href" : "//v1/applications/970/communication/conversations/314/messaging/stopMessaging"
    },
    "typingParticipants" : {
      "href" : "//v1/applications/970/communication/conversations/314/participants/typingParticipants"
    }
  }
}
  

Request

Get https://fe1.contoso.com:443//v1/applications/970/communication/conversations/314/messaging HTTP/1.1
Authorization: Bearer cwt=PHNhbWw6QXNzZXJ0aW9uIHhtbG5...uZm8
Host: fe1.contoso.com
Accept: application/xml

  

XML Response

This sample is given only as an illustration of response syntax. The semantic content is not guaranteed to correspond to a valid scenario.

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 1037
<?xml version="1.0" encoding="utf-8"?>
<resource rel="messaging" href="//v1/applications/970/communication/conversations/314/messaging" xmlns="http://schemas.microsoft.com/rtc/2012/03/ucwa">
  <link rel="addMessaging" href="//v1/applications/970/communication/conversations/314/messaging/addMessaging" />
  <link rel="conversation" href="//v1/applications/970/communication/conversations/314" />
  <link rel="sendMessage" href="//v1/applications/970/communication/conversations/314/messaging/sendMessage" />
  <link rel="setIsTyping" href="//v1/applications/970/communication/conversations/314/messaging/setIsTyping" />
  <link rel="stopMessaging" href="//v1/applications/970/communication/conversations/314/messaging/stopMessaging" />
  <link rel="typingParticipants" href="//v1/applications/970/communication/conversations/314/participants/typingParticipants" />
  <property name="rel">messaging</property>
  <propertyList name="negotiatedMessageFormats">
    <item>Plain</item>
    <item>Html</item>
  </propertyList>
  <property name="state">Connecting</property>
</resource>