Search code examples
circuit-sdk

Download attachment from Circuit Conversation via REST API


I'd like to download an attachment from the conversation via REST API (Circuit Sandbox)

If I query the Conversation Item, I can see the attachments and within that the fileID. Then, if I am logged with a user account who is a member of the conversation, I can run the following to download the attachment or paste it in the browser where I am logged to the sandbox:

''' start chrome https://circuitsandbox.net/rest/v2/fileapi?fileid=MyFileIdHere '''

And that works. Is there a way to achieve the same with a Bot via REST?


Solution

  • A regular GET request will work.

    curl https://circuitsandbox.net/rest/fileapi?fileid=<fileId> \
    -H "Authorization: Bearer <ACCESS_TOKEN>"
    

    and here is the REST notation.

    GET rest/fileapi?fileid=<fileId> HTTP/1.1
    Host: circuitsandbox.net
    Authorization: Bearer <ACCESS_TOKEN>
    

    The access token for a bot (client credentials grant) is obtained via OAuth 2.0:

    curl https://circuitsandbox.net/oauth/token \
    -d 'grant_type=client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&scope=READ_CONVERSATIONS,WRITE_CONVERSATIONS'
    

    REST notation:

    POST /oauth/token HTTP/1.1
    Host: circuitsandbox.net
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&scope=READ_CONVERSATIONS,WRITE_CONVERSATIONS'