The 17.3 Release includes Profile Plus updates and several API changes. In addition, we set aside some extra time this release to focus on fixing lots of customer-reported issues, so you'll notice that the You Found It. We Fixed It. section is a bit longer than normal.
New Features
In 17.1 we announced that we were deprecating these Profile Plus components:
- CTA: Connect (Feed Graphic) - (profileplus.widget.connect-graphic-2)
- CTA: Connect (Profile Graphic) - (profileplus.widget.connect-graphic-1)
- CTA: Connect (Text) - (profileplus.widget.connect-text)
These components have now been removed from the Components list in Studio.
Additionally, we are deprecating the Actionable Insights component (profileplus.widget.actionable-insight). This component will be removed from the Components list in Studio in a future release.
We are doing some refactoring to the Profile Plus API. As such, we have deprecated our current set of Profile Plus Community API v2 collections:
- klout_topics collection
- social_score collection
- klout_topics and social_score fields on the users collection
- klout_topics field on the messages collection
Stay tuned for news about the API refactor in an upcoming release. Customizations to Profile Plus will require a Lithium Services engagement during this period.
We have deprecated Profile Plus APIs and made additions to Community API v2.
- New collection: Bookmarks
- New endpoint to invalidate all user sessions
- Create and delete email subscriptions
- Updates to the Message resource
- Updates to the Image resource
New collection: Bookmarks
We have added Bookmarks to Community API v2. A bookmark represents a user or global bookmark on a message, conversation, board, category, or label (known as targets in the API). The Bookmarks collection was added in Community 16.9, and we are making it publicly available as of 17.3.
You can filter by ID, node ID or type, subscriber ID, target ID, and target type. Sorting by bookmark ID is supported in the ORDER BY clause.
Here is an example response to the query SELECT * FROM bookmarks LIMIT 1:
{
"status" : "success",
"message" : "",
"http_code" : 200,
"data" : {
"type" : "bookmarks",
"list_item_type" : "bookmark",
"size" : 1,
"items" : [ {
"type" : "bookmark",
"id" : "84",
"href" : "/bookmarks/84",
"target" : {
"type" : "conversation",
"id" : "173",
"view_href" : "/t5/Forum1/embedly/td-p/173",
"style" : "forum",
"messages_count" : 7,
"solved" : true,
"last_post_time" : "2015-02-20T15:59:59.040-08:00"
},
"subscriber" : {
"type" : "user",
"id" : "32",
"href" : "/users/32",
"view_href" : "/t5/user/viewprofilepage/user-id/32",
"login" : "SuzieH"
}
} ]
},
"metadata" : { }
New endpoint to invalidate all user sessions
We have added a new endpoint that enables you to sign out a user from all sessions. To make the call, you must be signed in to the API as a user who has the Manage roles, user bans, and abuse notifications in admin and user profiles (allow_manage_users) permission granted.
The endpoint is /api/2.0/auth/signout, where you send the user ID or SSO ID.
Example with SSO ID
POST /api/2.0/auth/signout HTTP/1.1
Host: mycommunity.com
Cache-Control: no-cache
{
"sso_id": "HJ8346453947IU$AQEW309FJQAW09F"
}
Example with user ID
POST /api/2.0/auth/signout HTTP/1.1
Host: mycommunity.com
Cache-Control: no-cache
{
"id": "1234532"
}
Example response
{
"id": "12345",
"signed_off_all_sessions": true
}
Create and delete email subscriptions
We’ve added the ability to create and delete email subscriptions to boards and messages over HTTP.
Example POST - Create a subscription to a message
POST /api/2.0/subscriptions HTTP/1.1
Host: mycommunity.com
Cache-Control: no-cache
{
"data": {
"type": "subscription",
"target": {
"type": "message",
"id": "483"
}
}
}
Example POST response
{
"status": "success",
"message": "",
"http_code": 200,
"data": {
"type": "subscription",
"id": "95",
"href": "/subscriptions/95",
"target": {
"type": "message",
"id": "483",
"href": "/messages/483",
"view_href": "http://docs.qa.lithium.com/t5/Concert-Reviews/Another-concert-review/ta-p/483"
},
"subscriber": {
"type": "user",
"id": "31",
"href": "/users/31",
"view_href": "http://docs.qa.lithium.com/t5/user/viewprofilepage/user-id/31",
"login": "admin"
}
},
"metadata": {}
}
Example Delete
DELETE /api/2.0/subscriptions/95 HTTP/1.1
Host: mycommunity.com
Example DELETE response
{
"status": "success",
"message": "",
"http_code": 200,
"data": {},
"metadata": {}
}
Message resource
New field
is_image_comment - (Boolean) Whether the message is an image comment. This field is only included in the response if messages are returned by a query that uses both the images.id and is_image_comment constraints.
Change to messages.parent field
If you look at the parent field in the Messages collection documentation, you will see that it is now a new kind of data type called "discussable." Discussable represents an entity that can have a reply or a comment. We use it to describe the type of discussable entity: image or message. In a LiQL query response, the parent field displays either "image" or "message".
For example, the query SELECT parent, id FROM messages WHERE id = '567'
returns the following, which indicates that the message is a comment on the image with the ID of 238i1019558468A45C2C:
{
"status" : "success",
"message" : "",
"http_code" : 200,
"data" : {
"type" : "messages",
"list_item_type" : "message",
"size" : 1,
"items" : [ {
"type" : "message",
"id" : "567",
"parent" : {
"type" : "image",
"id" : "238i1019558468A45C2C",
"href" : "/images/238",
"view_href" : "/t5/media/gallerypage/image-id/238i1019558468A45C2C"
}
} ]
},
"metadata" : { }
}
New constraints
- is_image_comment – Community users can comment on images when viewing the image in the image gallery (https://your_community/t5/media/gallerypage), typically accessed from the Latest Photos or My Photos components. You can query the Messages collection for comments on a specific image using is_image_comment and images.id in the WHERE clause. (Note that is_image_comment can only be used along with images.id when used as a constraint.)
- participants.id - You can constrain queries to the Messages collection by one or more users who have participated in a thread by using participants.id in the WHERE clause. A participant is defined as a user who posted a message (for example, a topic, comment, reply, or answer) in a thread. Such queries must be limited to topic messages (depth=0). The constraint honors the permissions of the user making the call, as well as moderation status of the message. Constraints with IN returns a merged list of unique threads (i.e. no duplicates)
The following example returns the topic messages of all threads that user 32 has participated in.
SELECT * FROM messages WHERE depth = 0 AND participants.id = '32'
The following example returns the topic messages of all threads that users 32, 13, and 575 have participated in.
SELECT * FROM messages WHERE depth = 0 AND participants.id IN ('32', '13', '575')
The following actions are not considered participation:- Tagging
- Giving kudos
- Editing a message
- Saving a blog draft
- Scheduling a blog post (until the blog is published)
Updates to the Image resource
New field
- comments - Comments associated with the image. Returns a LiQL query to use to retrieve.
New function
- comments.count(*) - Get the count comments of an image.
Deprecated APIs
We have deprecated the following Community v2 APIs:
- klout_topics collection
- social_score collection
- klout_topics and social_score fields on the users collection
- klout_topics field on the messages collection
The documentation for the tags.text constraint for the messages collection is not entirely correct.
The documentation states: “Multi-word tags are not supported in queries at this time. For example, you could filter by the tag CommunityAPI, but not Community API.”
This is true for queries using MATCHES; however, the Community API v2 supports multi-word tag filters when using equals (=) in the query.
For example, if you have the tag Code Sample:
SELECT id FROM messages WHERE tags.text MATCHES 'Code Sample'
will not return a result, but this query will:
SELECT id FROM messages WHERE tags.text = 'Code Sample'
Responsive-specific fixes
- Previously, when doing a Quick Reply on Responsive, you did not get a confirmation message that your post was successful. This issue has been fixed, and now a confirmation message is displayed.
- We have fixed the issue on Responsive where clicking any blog editing icon opened a pop-up window (like adding an image) and would scroll that page to the top. Now, the background page stays in place.
- We have fixed the issue where rich text and emoticons were not displaying properly in Private Messages on Responsive communities.
- We have fixed several issues related to emoticons not being displayed properly on Responsive sites.
- We have fixed the display issue on Responsive where some attachments were displayed with a strike-thru line. This line no longer appears.
- Previously, if a user on a Responsive community replied to a message, quoted the original message, and then edited the quote to leave only the portion of the text that they want to quote and then pressed the return key, the new text line would wrap any new text in an HTML block quote. This behavior has been fixed.
- For Responsive, we have added back the ability to place an icon next to topics started by certain users who have a specified rank. On Responsive, this icon appears in the byline after the "Latest Posts" section, separated by a dot.
General fixes
- The Profile biography text, whether set to public or private by the user, is indexed and previously could be searched for by all users. Now, the ability to search against this field is reserved for users who have the Manage roles, user bans, and abuse notification in admin and user profiles permission. This is not so much a permissions change, but a more consistent treatment of how we handle this data. Previously, the help tooltip indicated that this data was public; we have updated the tooltip to better describe this.
- We have fixed the issue where users who signed into a community with the Chrome browser using HTTP and then navigated to an HTTPS page (like My Settings) were signed out. Now, the user remains authenticated and can view the page without being signed out.
- Previously the Public Media, Private Media, and Reviews "boards" were mistakenly displayed in the Community Structure list, enabling admins to move these "boards" to a different location, which resulted in some erroneous behavior. This issue has been fixed by removing these three items from the Community Structure list.
- We have fixed the issue where TKB articles which had been set to Restrict Edits were not being displayed in the TKB article list. Now, even articles which have been set to Restrict Edits display properly in the TKB article list.
- We have fixed the table formatting issue where some tables with long entries did not wrap properly.
- Previously, if you entered an emoji in the subject or body field and then your draft was auto-saved, you received an error. This issue has been fixed.
- We have fixed the issue where emojis were being displayed as text instead of an image in Blogs and Q&A.
- Previously, if you added a link to an image in a post (when using Media v4), the link disappeared when you saved. This issue has been fixed and now the link displays and works as intended.
- We have fixed the issue where deleted categories and nodes were re-appearing because they weren't being properly removed from each HS node.
- Previously, if a user replied to a comment on a the community and later the thread with the comment was later moved to a private board that the user didn't have access to, that user would still be notified if their comment was later marked as an Accepted Solution. This issue has been fixed, and users no longer receive Accepted Solution notifications for boards they cannot access.
- We have fixed the issue where no matching search results were being displayed in the auto-populate field when searching for a user by first/last name or email address.
- Previously, when entering HTML into a topic and using the "usemap" attribute, the attribute was stripped and removed when you saved. This issue has been fixed and the "usemap" attribute is no longer stripped.
- Previously when a new member registered on the community and used a capital letter in one (but not both) of the email address fields, validation failed and displayed the message "Sorry, the two email addresses don't match". This email validation issue has been fixed and now the email address is accepted, regardless of inconsistent capitalization.
- Previously, when you added a picture to the editor and then added a caption, the caption was properly reflected under the image in the editor. However, multiple, subsequent attempts to edit the picture's caption resulted in the pop-up retaining the very first caption. This display issue has been fixed.
- The TKB TOC message editor icon is now consistent with the button we had in previous releases.
- Inline images are no longer changed to be left aligned after you click to view the details about the image.