Discussion

A Discussion is the beginning of a conversation. A Discussion can be explicitly marked as a question by setting the question field to true. Messages are replies to the discussion, and replies to the replies are also possible.

Examples:
Example JSON

JSON including important fields and a Discussion's resources. See the tables below for a list of all fields and resources.

 {
   "type" : "discussion",
   "status" : "published",
   "subject" : "New Discussion",
   "content" : {
     "type" : "text/html",
     "text" : "<p>Text of the discussion</p>"
   },
   "author" : {
     "name" : {
       "formatted" : "Administrator"
     },
     "type" : "person",
     "displayName" : "Administrator",
     "id" : "1"
   },
   "question" : false,
   "visibility" : "all",
   "visibleToExternalContributors" : false,
   "viewCount" : 0,
   "replyCount" : 0,
   "followerCount" : 0,
   "likeCount" : 0,
   "published" : "2012-07-09T18:50:30.066+0000",
   "updated" : "2012-07-09T18:50:30.066+0000",
   "tags" : [ ],
   "id" : "1071",
   "resources" : {
     "likes" : {
       "ref" : "https://example.jiveon.com/api/core/v3/contents/1236/likes",
       "allowed" : [ "GET" ]
     },
     "self" : {
       "ref" : "https://example.jiveon.com/api/core/v3/contents/1236",
       "allowed" : [ "PUT", "GET", "DELETE" ]
     },
     "html" : {
       "ref" : "https://example.jiveon.com/thread/1071",
       "allowed" : [ "GET" ]
     },
     "followingIn" : {
       "ref" : "https://example.jiveon.com/api/core/v3/contents/1236/followingIn",
       "allowed" : [ "GET" ]
     },
     "messages" : {
       "ref" : "https://example.jiveon.com/api/core/v3/messages/contents/1236",
       "allowed" : [ "GET", "POST" ]
     }
   }
 }
Simple Discussion Creation

POST to /contents creates a new discussion. The minimum set of fields you must include are:

 {
  "content":
      {
      "type": "text/html",
      "text": "<body><p>Some interesting text to discuss</p></body>"
      },
  "subject": "New Discussion",
  "type": "discussion"
  }
See Discussion Use Cases for full details on creating discussions programmatically.

Retrieve Discussion

GET to /contents/{contentID} to return a given discussion. The service URL can be found in the self resource under resources.

Update Discussion

After you have retrieved a discussion and made the desired changes, PUT to /contents/{contentID} passing the updated information in the request body. The service URL can be found in the self resource under resources.

Delete Discussion

DELETE to /contents/{contentID} to delete the specified discussion. The service URL can be found in the self resource under resources.

Reply to Discussion

POST to /messages/contents/{contentID} creates a new message as a direct reply to the discussion. The service URL can be found in the messages resource under resources. The minimum set of fields you must include are:

 {
  "content":
      {
      "type": "text/html",
      "text": "<body><p>This is a reply to the discussion</p></body>"
      },
  "type": "message"
  }
See Discussion Use Cases for full details on creating discussions programmatically.

Fields

FieldTypeMode Description
answerStringread-only

URI of the correct answer (if any) to this discussion, if it is a question.

Availability:

Only present on a discussion marked as a question, with a message marked as the correct answer

Since: 3.2
attachmentsAttachment[]optional

List of attachments to this discussion (if any).

authorPersonread-only

Author of this content object.

categoriesString[]optional

Categories associated with this object. Places define the list of possible categories.

contentContentBodyrequired

Content of this content object.

followerCountIntegerread-only

Number of people following this object.

Availability:

Will be present only for object types that support being followed.

helpfulString[]read-only

URIs of messages that have been marked "helpful", if this discussion is a question.

Availability:

Only present on a discussion marked as a question, with at least one message marked as a helpful answer

Since: 3.2
highlightBodyStringread-only

Highlight snippet of a search match in the body or description.

Availability:

Will be present in search results only.

highlightSubjectStringread-only

Highlight snippet of a search match in the subject or name.

Availability:

Will be present in search results only.

highlightTagsStringread-only

Highlight snippet of a search match in tags.

Availability:

Will be present in search results only.

idStringread-only

Identifier (unique within an object type and Jive instance) of this object. This field is internal to Jive and should not be confused with contentID or placeID used in URIs.

likeCountIntegerread-only

Number of people who have liked this object.

Availability:

Will be present only for object types that support being liked.

onBehalfOfOnBehalfOfoptional

Information that is available when the discussion was posted by the author on behalf of another person. This person may be an anonymous user, an unknown user with just an email address or another user of Jive.

Since: 3.3
parentStringoptional

URI of the parent place of this content object. When visibility is place then the URI points to a place (and is required on create). Otherwise, this field is not part of the returned JSON (and must not be included on create).

parentContentSummaryread-only

Summary information about the content object that is the parent of this object.

Availability:

Will be present in search results only.

parentPlaceSummaryread-only

Summary information about the place that contains this object.

Availability:

Will be present in search results only.

publishedISO 8601 Dateread-only

Date and time when this content object was originally created.

questionBooleanread-only

Flag indicating that this discussion is a question.

replyCountIntegerread-only

Number of replies to this object.

Availability:

Will be present only for object types that support replies.

resolvedStringoptional

If this discussion is a question, this field will contain the resolution state ("open", "resolved", "assumed_resolved"). If the current state is "open", it may be changed to "assumed_resolved" by the author or a moderator.

Availability:

Only present on a discussion marked as a question

Since: 3.2
resourcesObjectread-only

Resource links (and related permissions for the requesting person) relevant to this object.

statusStringread-only

Published status of this content object.

  • incomplete - Content object is in draft mode
  • pending_approval - Content object is waiting for approval
  • rejected - Content object has been rejected for publication by an approver
  • published - Content object has been published
subjectStringrequired

Subject of this content object.

tagsString[]optional

Tags associated with this object.

Availability:

Will be present only for object types that support tags

typeStringrequired

The object type of this object ("discussion"). This field is required when creating new content.

updatedISO 8601 Dateread-only

Date and time this content object was most recently updated.

usersPerson[]optionalThe list of users that can see the content. On create or update, provide a list of Person URIs or Person entities. On get, returns a list of Person entities. This value is used only when visibility is people.
viaViaoptional

Information that is available when the discussion was posted via an external system.

Since: 3.3
viewCountIntegerread-only

Number of times this content object has been viewed.

Availability:

Will be present only for objects that support view counts

visibilityStringoptional

The visibility policy for this discussion. Valid values are:

  • all - anyone with appropriate permissions can see the content. Default when visibility, parent and users were not specified.
  • people - only those users specified by users can see the content. Default when visibility and parent were not specified but users was specified.
  • place - place permissions specify which users can see the content. Default when visibility was not specified but parent was specified.
visibleToExternalContributorsBooleanread-only

Flag indicating that this content object is potentially visible to external contributors.

→ Fields used by update and create operations
→ Fields used only by create operations
→ Fields not used by update or create operations

Resources

ResourceMethodDescription
followersGET

Return a paginated list of the people following this content.

Retrieves:
  • Person[]
  • Since: 3.5
    followingInGET

    Return the list of custom streams in which the requesting person is following this discussion (if any).

    Retrieves:
  • Stream[]
  • htmlGET

    Return the HTML representation of this discussion.

    likesPOST

    Register that the requesting person likes this discussion.

    Availability:

    Must be authenticated, must not be your own discussion, and must not have liked this discussion already

    likesGET

    Return a paginated list of people who like this discussion.

    Retrieves:
  • Person[]
  • readPOST

    Mark this discussion as having been read.

    Since: 3.2
    readDELETE

    Mark this discussion as having not been read.

    Since: 3.2
    messagesGET

    Return a paginated list of replies to this discussion.

    Retrieves:
  • Message[]
  • messagesPOST

    Create a new reply to this discussion, and return a Message representing the new object.

    Takes:
    • Message fields describing the new message
    Retrieves:
  • Message describing the newly created message
  • selfGET

    Return an updated version of this discussion.

    Retrieves:
  • Discussion representing the updated discussion
  • selfPUT

    Update the information about this discussion.

    Retrieves:
  • Discussion representing the updated discussion
  • selfDELETE

    Delete this discussion and all messages associated with it.

    likesDELETE

    Delete the like of this discussion by the requesting person.

    Availability:

    Must be authenticated, and must have liked this discussion already