shareattachmentringcentralglip

Is there an API for sharing an attachment in RingCentral Glip?


I want to build an app that can monitor one Glip team for posts including screenshots and then post that message to another Glip team. I can read a post, download an attachment and repost / upload it, but is there a way to simply share an existing attachment without reposting it. This can be done in the app UI but I didn't see a share API in the Glip API Reference.

Here's the Glip API Reference which includes endpoints for creating, reading, updating and deleting posts but not sharing:

The icon for sharing is the 6th from the left in the app screenshot below.

RingCentral Glip buttons

Is there a way to do this in Glip without downloading and re-uploading the file?


Solution

  • To share an attachment via the Glip API, create a new post with an existing attachment.

    Create Post API

    The Create Post API takes an optional attachments array which references existing attachments. Both the id and type properties are required. Both properties are present in the post API response.

    POST /restapi/v1.0/glip/chats/{chatId}/posts
    
    {
        "text": "Please check out this file",
        "attachments": [
            {
                "id":"123456789",
                "type":"File"
            }
        ]
    }
    

    Example Get Posts API

    The following is an example of a post showing the attachments array with the id and type properties. The attachment URL is an AWS Presigned Object URL as shown below.

    GET /restapi/v1.0/glip/chats/{chatId}/posts
    
    {
        "records": [
            {
                "id": "11111111",
                "creatorId": "22222222",
                "creationTime": "2019-08-26T21:41:56.648Z",
                "lastModifiedTime": "2019-08-26T21:41:56.648Z",
                "type": "TextMessage",
                "chatId": "33333333",
                "mentions": [],
                "attachments": [
                    {
                        "id": "123456789",
                        "name": "sharedfile.png",
                        "contentUri": "https://glip-vault-1.s3.amazonaws.com/web/customer_files/44444444/testimage.png?Expires=55555555&AWSAccessKeyId=myAccessKeyId&Signature=myAWSPresignedObjectUrlSignature",
                        "type": "File"
                    }
                ],
                "text": "Check this out!"
            }
        },
        "navigation": {}
    }
    

    Sharing Permissions

    Attachments can only be shared by the original poster or within the same chat. If a different user wants to share an attachment in a different team, it will be necessary to download and repost the file, generating a new attachment id.

    If a different user attempts to share an attachment in a different chat, a 403 Forbidden error will be encountered:

    403 Forbidden
    
    {
        "errors": [
            {
                "errorCode": "PST-011",
                "message": "The requester must be attachment creator or attachment must belong to the requested chat."
            }
        ]
    }