Chilkat Online Tools

Foxpro / Salesforce Platform APIs / Users Files, General

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loReq
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcChecksum
LOCAL lcContentHubRepository
LOCAL lcContentModifiedDate
LOCAL lnContentSize
LOCAL lcContentUrl
LOCAL lcCreatedDate
LOCAL lcDescription
LOCAL lcDownloadUrl
LOCAL lcExternalDocumentUrl
LOCAL lcExternalFilePermissionInformation
LOCAL lcFileAsset
LOCAL lcFileExtension
LOCAL lcFileType
LOCAL lcFlashRenditionStatus
LOCAL lcId
LOCAL lnIsFileAsset
LOCAL lnIsInMyFileSync
LOCAL lnIsMajorVersion
LOCAL lcMimeType
LOCAL lcModerationFlags
LOCAL lcModifiedDate
LOCAL lcColor
LOCAL lcLargeIconUrl
LOCAL lcMediumIconUrl
LOCAL lcSmallIconUrl
LOCAL lcSvgIconUrl
LOCAL lcMySubscription
LOCAL lcName
LOCAL lcOrigin
LOCAL lcAdditionalLabel
LOCAL lcCommunityNickname
LOCAL lcCompanyName
LOCAL lcDisplayName
LOCAL lcFirstName
LOCAL lcId
LOCAL lnIsActive
LOCAL lnIsInThisCommunity
LOCAL lcLastName
LOCAL lcMotifColor
LOCAL lcMotifLargeIconUrl
LOCAL lcMotifMediumIconUrl
LOCAL lcMotifSmallIconUrl
LOCAL lcMotifSvgIconUrl
LOCAL lcMySubscription
LOCAL lcName
LOCAL lcMessage
LOCAL lcFullEmailPhotoUrl
LOCAL lcLargePhotoUrl
LOCAL lcMediumPhotoUrl
LOCAL lcPhotoVersionId
LOCAL lcSmallPhotoUrl
LOCAL lcStandardEmailPhotoUrl
LOCAL lcV_Url
LOCAL lcReputation
LOCAL lcTitle
LOCAL lcV_Type
LOCAL lcOwnerUrl
LOCAL lcUserType
LOCAL lnPageCount
LOCAL lcParentFolder
LOCAL lcPdfRenditionStatus
LOCAL lcPublishStatus
LOCAL lcRenditionUrl
LOCAL lcRenditionUrl240By180
LOCAL lcRenditionUrl720By480
LOCAL lcRepositoryFileId
LOCAL lcRepositoryFileUrl
LOCAL lcSharingOption
LOCAL lcSharingPrivacy
LOCAL lcSharingRole
LOCAL lcSystemModstamp
LOCAL lcTextPreview
LOCAL lcThumb120By90RenditionStatus
LOCAL lcThumb240By180RenditionStatus
LOCAL lcThumb720By480RenditionStatus
LOCAL lcTitle
LOCAL lcCurrentPageUrl
LOCAL lcNextPageUrl
LOCAL lcV_type
LOCAL lcUrl
LOCAL lcVersionNumber
LOCAL i
LOCAL lnCount_i

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.HttpRequest')
loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.Path = "/services/data/v{{version}}/connect/files/users/me"
loReq.ContentType = "multipart/form-data"
lnSuccess = loReq.AddFileForUpload2("fileData"," path to file","application/octet-stream")

loReq.AddHeader("Authorization","Bearer <access_token>")
loReq.AddHeader("Expect","100-continue")

loResp = loHttp.SynchronousRequest("domain.com",443,1,loReq)
IF (loHttp.LastMethodSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loReq
    CANCEL
ENDIF

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder')
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loResp
    RELEASE loHttp
    RELEASE loReq
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

RELEASE loResp

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "checksum": "71a50dbba44c78128b221b7df7bb51f1",
*   "contentHubRepository": null,
*   "contentModifiedDate": "2023-11-20T16:28:22.000Z",
*   "contentSize": 95,
*   "contentUrl": null,
*   "createdDate": "2023-11-20T16:28:22.000Z",
*   "description": null,
*   "downloadUrl": "/services/data/v58.0/connect/files/069.../content?versionNumber=1",
*   "externalDocumentUrl": null,
*   "externalFilePermissionInformation": null,
*   "fileAsset": null,
*   "fileExtension": "png",
*   "fileType": "Png",
*   "flashRenditionStatus": "Na",
*   "id": "069...",
*   "isFileAsset": false,
*   "isInMyFileSync": false,
*   "isMajorVersion": true,
*   "mimeType": "image/png",
*   "moderationFlags": null,
*   "modifiedDate": "2023-11-20T16:28:22.000Z",
*   "motif": {
*     "color": "939393",
*     "largeIconUrl": "/img/content/content64.png",
*     "mediumIconUrl": "/img/content/content32.png",
*     "smallIconUrl": "/img/icon/files16.png",
*     "svgIconUrl": null
*   },
*   "mySubscription": null,
*   "name": "1x1.png",
*   "origin": "Chatter",
*   "owner": {
*     "additionalLabel": null,
*     "communityNickname": "User1696423780773910041",
*     "companyName": "Salesforce",
*     "displayName": "Name",
*     "firstName": "Firstname",
*     "id": "005...",
*     "isActive": true,
*     "isInThisCommunity": true,
*     "lastName": "Name",
*     "motif": {
*       "color": "1B96FF",
*       "largeIconUrl": "/img/icon/profile64.png",
*       "mediumIconUrl": "/img/icon/profile32.png",
*       "smallIconUrl": "/img/icon/profile16.png",
*       "svgIconUrl": null
*     },
*     "mySubscription": null,
*     "name": "Name",
*     "outOfOffice": {
*       "message": ""
*     },
*     "photo": {
*       "fullEmailPhotoUrl": "https://<my_domain>/ncsphoto/1wsMlOd3tVC7boygqBO8wMT9KzA0D6tqzpbs-Uw0IogXzXAXaYKJnuWCNQmXymRq?fromEmail=1",
*       "largePhotoUrl": "https://<my_domain>/profilephoto/729.../F",
*       "mediumPhotoUrl": "https://<my_domain>/profilephoto/729.../M",
*       "photoVersionId": "729...",
*       "smallPhotoUrl": "https://<my_domain>/profilephoto/729.../T",
*       "standardEmailPhotoUrl": "https://<my_domain>/ncsphoto/1wsMlOd3tVC7boygqBO8wMT9KzA0D6tqzpbs-Uw0Ioi-dtynkoFWsl46as__TDFU?fromEmail=1",
*       "url": "/services/data/v58.0/connect/user-profiles/005.../photo"
*     },
*     "reputation": null,
*     "title": null,
*     "type": "User",
*     "url": "/services/data/v58.0/chatter/users/005...",
*     "userType": "Internal"
*   },
*   "pageCount": 0,
*   "parentFolder": null,
*   "pdfRenditionStatus": "Na",
*   "publishStatus": "PrivateAccess",
*   "renditionUrl": "/services/data/v58.0/connect/files/069.../rendition?type=THUMB120BY90",
*   "renditionUrl240By180": "/services/data/v58.0/connect/files/069.../rendition?type=THUMB240BY180",
*   "renditionUrl720By480": "/services/data/v58.0/connect/files/069.../rendition?type=THUMB720BY480",
*   "repositoryFileId": null,
*   "repositoryFileUrl": null,
*   "sharingOption": "Allowed",
*   "sharingPrivacy": "None",
*   "sharingRole": "Owner",
*   "systemModstamp": "2023-11-20T16:28:23.000Z",
*   "textPreview": null,
*   "thumb120By90RenditionStatus": "NotScheduled",
*   "thumb240By180RenditionStatus": "NotScheduled",
*   "thumb720By480RenditionStatus": "NotScheduled",
*   "title": "1x1.png",
*   "topics": {
*     "currentPageUrl": null,
*     "nextPageUrl": null,
*     "topics": [
*     ]
*   },
*   "type": "File",
*   "url": "/services/data/v58.0/connect/files/069...?versionNumber=1",
*   "versionNumber": "1"
* }

* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

lcChecksum = loJResp.StringOf("checksum")
lcContentHubRepository = loJResp.StringOf("contentHubRepository")
lcContentModifiedDate = loJResp.StringOf("contentModifiedDate")
lnContentSize = loJResp.IntOf("contentSize")
lcContentUrl = loJResp.StringOf("contentUrl")
lcCreatedDate = loJResp.StringOf("createdDate")
lcDescription = loJResp.StringOf("description")
lcDownloadUrl = loJResp.StringOf("downloadUrl")
lcExternalDocumentUrl = loJResp.StringOf("externalDocumentUrl")
lcExternalFilePermissionInformation = loJResp.StringOf("externalFilePermissionInformation")
lcFileAsset = loJResp.StringOf("fileAsset")
lcFileExtension = loJResp.StringOf("fileExtension")
lcFileType = loJResp.StringOf("fileType")
lcFlashRenditionStatus = loJResp.StringOf("flashRenditionStatus")
lcId = loJResp.StringOf("id")
lnIsFileAsset = loJResp.BoolOf("isFileAsset")
lnIsInMyFileSync = loJResp.BoolOf("isInMyFileSync")
lnIsMajorVersion = loJResp.BoolOf("isMajorVersion")
lcMimeType = loJResp.StringOf("mimeType")
lcModerationFlags = loJResp.StringOf("moderationFlags")
lcModifiedDate = loJResp.StringOf("modifiedDate")
lcColor = loJResp.StringOf("motif.color")
lcLargeIconUrl = loJResp.StringOf("motif.largeIconUrl")
lcMediumIconUrl = loJResp.StringOf("motif.mediumIconUrl")
lcSmallIconUrl = loJResp.StringOf("motif.smallIconUrl")
lcSvgIconUrl = loJResp.StringOf("motif.svgIconUrl")
lcMySubscription = loJResp.StringOf("mySubscription")
lcName = loJResp.StringOf("name")
lcOrigin = loJResp.StringOf("origin")
lcAdditionalLabel = loJResp.StringOf("owner.additionalLabel")
lcCommunityNickname = loJResp.StringOf("owner.communityNickname")
lcCompanyName = loJResp.StringOf("owner.companyName")
lcDisplayName = loJResp.StringOf("owner.displayName")
lcFirstName = loJResp.StringOf("owner.firstName")
lcId = loJResp.StringOf("owner.id")
lnIsActive = loJResp.BoolOf("owner.isActive")
lnIsInThisCommunity = loJResp.BoolOf("owner.isInThisCommunity")
lcLastName = loJResp.StringOf("owner.lastName")
lcMotifColor = loJResp.StringOf("owner.motif.color")
lcMotifLargeIconUrl = loJResp.StringOf("owner.motif.largeIconUrl")
lcMotifMediumIconUrl = loJResp.StringOf("owner.motif.mediumIconUrl")
lcMotifSmallIconUrl = loJResp.StringOf("owner.motif.smallIconUrl")
lcMotifSvgIconUrl = loJResp.StringOf("owner.motif.svgIconUrl")
lcMySubscription = loJResp.StringOf("owner.mySubscription")
lcName = loJResp.StringOf("owner.name")
lcMessage = loJResp.StringOf("owner.outOfOffice.message")
lcFullEmailPhotoUrl = loJResp.StringOf("owner.photo.fullEmailPhotoUrl")
lcLargePhotoUrl = loJResp.StringOf("owner.photo.largePhotoUrl")
lcMediumPhotoUrl = loJResp.StringOf("owner.photo.mediumPhotoUrl")
lcPhotoVersionId = loJResp.StringOf("owner.photo.photoVersionId")
lcSmallPhotoUrl = loJResp.StringOf("owner.photo.smallPhotoUrl")
lcStandardEmailPhotoUrl = loJResp.StringOf("owner.photo.standardEmailPhotoUrl")
lcV_Url = loJResp.StringOf("owner.photo.url")
lcReputation = loJResp.StringOf("owner.reputation")
lcTitle = loJResp.StringOf("owner.title")
lcV_Type = loJResp.StringOf("owner.type")
lcOwnerUrl = loJResp.StringOf("owner.url")
lcUserType = loJResp.StringOf("owner.userType")
lnPageCount = loJResp.IntOf("pageCount")
lcParentFolder = loJResp.StringOf("parentFolder")
lcPdfRenditionStatus = loJResp.StringOf("pdfRenditionStatus")
lcPublishStatus = loJResp.StringOf("publishStatus")
lcRenditionUrl = loJResp.StringOf("renditionUrl")
lcRenditionUrl240By180 = loJResp.StringOf("renditionUrl240By180")
lcRenditionUrl720By480 = loJResp.StringOf("renditionUrl720By480")
lcRepositoryFileId = loJResp.StringOf("repositoryFileId")
lcRepositoryFileUrl = loJResp.StringOf("repositoryFileUrl")
lcSharingOption = loJResp.StringOf("sharingOption")
lcSharingPrivacy = loJResp.StringOf("sharingPrivacy")
lcSharingRole = loJResp.StringOf("sharingRole")
lcSystemModstamp = loJResp.StringOf("systemModstamp")
lcTextPreview = loJResp.StringOf("textPreview")
lcThumb120By90RenditionStatus = loJResp.StringOf("thumb120By90RenditionStatus")
lcThumb240By180RenditionStatus = loJResp.StringOf("thumb240By180RenditionStatus")
lcThumb720By480RenditionStatus = loJResp.StringOf("thumb720By480RenditionStatus")
lcTitle = loJResp.StringOf("title")
lcCurrentPageUrl = loJResp.StringOf("topics.currentPageUrl")
lcNextPageUrl = loJResp.StringOf("topics.nextPageUrl")
lcV_type = loJResp.StringOf("type")
lcUrl = loJResp.StringOf("url")
lcVersionNumber = loJResp.StringOf("versionNumber")
i = 0
lnCount_i = loJResp.SizeOfArray("topics.topics")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loReq
RELEASE loSbResponseBody
RELEASE loJResp

Curl Command

curl -X POST
	-H "Authorization: Bearer <access_token>"
	--form 'fileData=@"/path/to/file"'
https://domain.com/services/data/v{{version}}/connect/files/users/me

Postman Collection Item JSON

{
  "name": "Users Files, General",
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "exec": [
          ""
        ],
        "type": "text/javascript"
      }
    },
    {
      "listen": "test",
      "script": {
        "exec": [
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "protocolProfileBehavior": {
    "disabledSystemHeaders": {}
  },
  "request": {
    "method": "POST",
    "header": [
    ],
    "body": {
      "mode": "formdata",
      "formdata": [
        {
          "key": "fileData",
          "type": "file",
          "src": [
          ]
        }
      ]
    },
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/connect/files/users/me",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "connect",
        "files",
        "users",
        "me"
      ]
    },
    "description": "Upload a file, including references to external files, to the Files home or get information about files a user owns. These files don’t include files shared with a user, files a user follows, or general organization files.\nWhen you upload a file to the Files home, it is private and available only to the file owner.\n\nTo upload a file, send it in a multipart/form-data request. You can include the description and title of the file in the multipart/form-data request as a JSON or XML request body. You can also send the information as request parameters. For information about how to create the multipart/form-data message, see Uploading Binary Files.\nhttps://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_users_files_general.htm"
  },
  "response": [
    {
      "name": "Successful Users Files, General",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "formdata",
          "formdata": [
            {
              "key": "fileData",
              "type": "file",
              "src": "/Users/scolladon/Downloads/1x1.png"
            }
          ]
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/files/users/me",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "files",
            "users",
            "me"
          ]
        }
      },
      "status": "Created",
      "code": 201,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Mon, 20 Nov 2023 16:28:22 GMT"
        },
        {
          "key": "Strict-Transport-Security",
          "value": "max-age=63072000; includeSubDomains"
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "X-XSS-Protection",
          "value": "1; mode=block"
        },
        {
          "key": "X-Robots-Tag",
          "value": "none"
        },
        {
          "key": "Cache-Control",
          "value": "no-cache,must-revalidate,max-age=0,no-store,private"
        },
        {
          "key": "Content-Type",
          "value": "application/json;charset=UTF-8"
        },
        {
          "key": "Vary",
          "value": "Accept-Encoding"
        },
        {
          "key": "Content-Encoding",
          "value": "gzip"
        },
        {
          "key": "Transfer-Encoding",
          "value": "chunked"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"checksum\": \"71a50dbba44c78128b221b7df7bb51f1\",\n    \"contentHubRepository\": null,\n    \"contentModifiedDate\": \"2023-11-20T16:28:22.000Z\",\n    \"contentSize\": 95,\n    \"contentUrl\": null,\n    \"createdDate\": \"2023-11-20T16:28:22.000Z\",\n    \"description\": null,\n    \"downloadUrl\": \"/services/data/v58.0/connect/files/069.../content?versionNumber=1\",\n    \"externalDocumentUrl\": null,\n    \"externalFilePermissionInformation\": null,\n    \"fileAsset\": null,\n    \"fileExtension\": \"png\",\n    \"fileType\": \"Png\",\n    \"flashRenditionStatus\": \"Na\",\n    \"id\": \"069...\",\n    \"isFileAsset\": false,\n    \"isInMyFileSync\": false,\n    \"isMajorVersion\": true,\n    \"mimeType\": \"image/png\",\n    \"moderationFlags\": null,\n    \"modifiedDate\": \"2023-11-20T16:28:22.000Z\",\n    \"motif\": {\n        \"color\": \"939393\",\n        \"largeIconUrl\": \"/img/content/content64.png\",\n        \"mediumIconUrl\": \"/img/content/content32.png\",\n        \"smallIconUrl\": \"/img/icon/files16.png\",\n        \"svgIconUrl\": null\n    },\n    \"mySubscription\": null,\n    \"name\": \"1x1.png\",\n    \"origin\": \"Chatter\",\n    \"owner\": {\n        \"additionalLabel\": null,\n        \"communityNickname\": \"User1696423780773910041\",\n        \"companyName\": \"Salesforce\",\n        \"displayName\": \"Name\",\n        \"firstName\": \"Firstname\",\n        \"id\": \"005...\",\n        \"isActive\": true,\n        \"isInThisCommunity\": true,\n        \"lastName\": \"Name\",\n        \"motif\": {\n            \"color\": \"1B96FF\",\n            \"largeIconUrl\": \"/img/icon/profile64.png\",\n            \"mediumIconUrl\": \"/img/icon/profile32.png\",\n            \"smallIconUrl\": \"/img/icon/profile16.png\",\n            \"svgIconUrl\": null\n        },\n        \"mySubscription\": null,\n        \"name\": \"Name\",\n        \"outOfOffice\": {\n            \"message\": \"\"\n        },\n        \"photo\": {\n            \"fullEmailPhotoUrl\": \"https://<my_domain>/ncsphoto/1wsMlOd3tVC7boygqBO8wMT9KzA0D6tqzpbs-Uw0IogXzXAXaYKJnuWCNQmXymRq?fromEmail=1\",\n            \"largePhotoUrl\": \"https://<my_domain>/profilephoto/729.../F\",\n            \"mediumPhotoUrl\": \"https://<my_domain>/profilephoto/729.../M\",\n            \"photoVersionId\": \"729...\",\n            \"smallPhotoUrl\": \"https://<my_domain>/profilephoto/729.../T\",\n            \"standardEmailPhotoUrl\": \"https://<my_domain>/ncsphoto/1wsMlOd3tVC7boygqBO8wMT9KzA0D6tqzpbs-Uw0Ioi-dtynkoFWsl46as__TDFU?fromEmail=1\",\n            \"url\": \"/services/data/v58.0/connect/user-profiles/005.../photo\"\n        },\n        \"reputation\": null,\n        \"title\": null,\n        \"type\": \"User\",\n        \"url\": \"/services/data/v58.0/chatter/users/005...\",\n        \"userType\": \"Internal\"\n    },\n    \"pageCount\": 0,\n    \"parentFolder\": null,\n    \"pdfRenditionStatus\": \"Na\",\n    \"publishStatus\": \"PrivateAccess\",\n    \"renditionUrl\": \"/services/data/v58.0/connect/files/069.../rendition?type=THUMB120BY90\",\n    \"renditionUrl240By180\": \"/services/data/v58.0/connect/files/069.../rendition?type=THUMB240BY180\",\n    \"renditionUrl720By480\": \"/services/data/v58.0/connect/files/069.../rendition?type=THUMB720BY480\",\n    \"repositoryFileId\": null,\n    \"repositoryFileUrl\": null,\n    \"sharingOption\": \"Allowed\",\n    \"sharingPrivacy\": \"None\",\n    \"sharingRole\": \"Owner\",\n    \"systemModstamp\": \"2023-11-20T16:28:23.000Z\",\n    \"textPreview\": null,\n    \"thumb120By90RenditionStatus\": \"NotScheduled\",\n    \"thumb240By180RenditionStatus\": \"NotScheduled\",\n    \"thumb720By480RenditionStatus\": \"NotScheduled\",\n    \"title\": \"1x1.png\",\n    \"topics\": {\n        \"currentPageUrl\": null,\n        \"nextPageUrl\": null,\n        \"topics\": []\n    },\n    \"type\": \"File\",\n    \"url\": \"/services/data/v58.0/connect/files/069...?versionNumber=1\",\n    \"versionNumber\": \"1\"\n}"
    }
  ]
}