Quirks, bugs and improvement requests for the JS and REST APIs

Version 12

    This is a working document. We've been doing a lot of work with the REST API recently and just wanted to document some issues we ran into. Maybe we overlooked a solution, or Jive can file this as improvement requests

     

    DescriptionEndpoint documentationDetailsWorkaround/Enhancement request
    People Picker does not return external usersJive JavaScript API v3.10 → osapi.jive.corev3.people classJS People picker does not show external users
    Not possible to get all content created by a userJive REST Rest API v3.8 → Person entity

    I really hope I am missing something obious here: There seems to be no way to retrieve all content for a user in Jive (e.g the content shown on a users profile under the content tab Nils Heuer).It is possible to use the activities resource to get similar data, but

    1) The activity stream requires extensive parsing and deduplication to get a reliable list of content

    2) My assumption is that this is limited to the retention period of the activity engine, preventing reliable retrieval of all content

    JIVE-56549


    Can't you do this via Get Contents using the "author" filter?


    No delete notification send for webhooksJive REST Rest API v3.8 → Webhooks serviceIt seems that webhooks are not sent for content deletion. This seems like a major oversight in the functionality, given that the use case of content synchronization is explicitely mentioned in the documentationJIVE-56550
    External Content Objects can only be created via activity stream integrationsHow to embed an app within an external stream objectThis feature is absolutely awesome. However, as it is only available for activity stream integrations it is quite unwieldy. A common use case would be creating new content types that are apps powered. With a stream integration things like setting the author are difficult and require additional logic via the rest api (if they are possible at all).Add External Stream/Content objects as first class cititzens to the JS and REST Apis so that they can be created directly. (JIVE-56551)
    Actions created via the API show up as notifications, and are missing functionality existing in v2 APIJive REST Rest API v3.8 → ActionLink entityAs described in this discussion: Re: Action links in Core v3 the behavior of actions created via the API is inconsistent and confusing, as actions show up as notifications in the users inbox, instead of the actions menu in Jive. Also in the Core v2 API it was possible to open links via a button as part of an action. It seems that this capability has been removed.Ryan Rutan mentioned that Jira cases had been opened for this. However, Gareth Ferrier indicated that they had been closed (JIVE-56552)
    Search results inconsistent when external activities are found in searchJive REST Rest API v3.8 → Search serviceWhen search results include External Activities content type objects, the author field for these objects is optional it seems. This is inconsistent with all other Jive content types where the author is a required field if I am not mistaken. This requires exception handling specifically for external activities for all content searches.Shouldn't the onbehalf of field or the actor of an external activity be the author? (JIVE-56553)
    Activity service, inconsistent format for External Stream activitiesRelated to the point above, when retrieving activities via the api/core/v3/activities endpoint, the format for external stream entries is significantly different than other activitiesJIVE-56554
    Person entity includes last status update, but not not date and link to latest status update

    Endpoint: https://developers.jivesoftware.com/api/v3/cloud/rest/PersonService.html#getPerson(String, String)

    Jive REST Rest API v3.7 → Person entity

    More of a convenience function. Jive apps like the web app, Outlook connector or the mobile apps, show the last status update with the date it was published. The date and a link to the last update are not included in the person entity. It would require another call to the activities of the person and iterating over that to find it.JIVE-49675
    Content endpoint allows to retrieve recently viewed content, but does not sort by recently viewed

    https://developers.jivesoftware.com/api/v3/cloud/rest/ContentService.html#getContents(List<String>, String, int, int, String, boolean, boolean)

    https://developers.jivesoftware.com/api/v3/cloud/rest/PlaceService.html#getPlaces(List<String>, String, int, int, String)

    The API allows to filter content and placed by recently viewed. However, when retrieving them, there is not corresponding sort order (only alphabetic, creation date and last activity are available for sorting).

    An additional sort order by last accessed would be helpful to mimic the behaviour of the Jive UI

    JIVE-49676
    Ability to search by customer created filterable profile fieldsJive JavaScript API v3.8 → osapi.jive.corev3.people class  getFilterableFields()Customer created filterable profile fields are not showing when using the Jive JavaScript API v3.8 → osapi.jive.corev3.people class  getFilterableFields() method, and cannot be used for searching content via the api
    Ability to search by filterable profile fields, but no obvious way to get valid search strings

    Jive JavaScript API v3.8 → osapi.jive.corev3.people class  getFilterableFields()

    It is possible to search users by filterable profile fields, such as location, company, department, role, etc. The getFilterableFields() method in the people class allows you to get the fields that can be filtered by. These fields accept only case-sensitive perfect matches. E.g. it will find "Sales" but not "sales" or "sal*". What seems to be missing (or hidden well in the documentation) is the method to get the list of available options. It seems to be available in Jive, as it is used in the filter options of the browse people page:

    2014-10-06_1609.png

    also mentioned here Getting values for filterable profile fields

    JIVE-49674
    Missing content/json format description for webhook notificationsJive REST Rest API v3.7 → Webhooks service

    The documentation incorrectly states: "When these events occur, Jive will create an activity object and send it to the webhook callback. The activity event type is specified in the verb field of the webhook activity object, which is a standard V3 activity stream object"

    The format is actually a JSON Array of webhook activity objects. A webhook activity has the following format:

    {"webhook":"$WEBHOOK_URL",

    "activity": JIVE_ACTIVITY_OBJECT

    }

    JIVE-49678
    (Minor) Incorrect HTTP Method for webhook exampleshttps://developers.jivesoftware.com/api/v3/cloud/rest/WebhooksService.html#createWebhook(String, String)The correct HTTP Method should be POST for these examples are webhooks are created.JIVE-49679
    Inconclusive use of the client id and secret as username and password in REST callsAll requests the webhook example liked above is an example of thisThe documentation states that one should pass the client id and secret as basic auth username and password when making calls to the REST API. However, at least when using curl, one does not need to do that. The Authentication: Bearer ACCESS_TOKEN seems to be sufficient.JIVE-49680
    Apps view without Jive iFrameThe case for immersive (SharePoint-style) apps in JiveImmersive apps would be a great boost to performance in Jive apps