Take the 2-minute tour ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

I'm looking for an example that uses the Chatter REST Api to upload a User Photo.

The documentation explains the syntax, but they don't give an example of the HTTP form data to POST.

Elsewhere in the documentation, an example is given for posting a file, though:

POST /services/data/v26.0/chatter/feeds/user-profile/005x0000001TBMVAA4/feed-items HTTP/1.1
Authorization: Bearer 00Dx00000001hQY!ARUAQPg.NZBUVAWJh8Dd8UtWHE2k1o0wQuyN9XcRjqZNnuiGJ_YdaQ5uqGa.j7iK4VKF6jzsP3PBvDlQyJ8.MKI983iDUC78
User-Agent: Jakarta Commons-HttpClient/3.0.1
Host: instance_name
Content-Length: 897
Content-Type: multipart/form-data; boundary=0HWq8x4y4DSQ4fqjXt6MinVMyqbf1r
--0HWq8x4y4DSQ4fqjXt6MinVMyqbf1r
Content-Disposition: form-data; name="xml"
Content-Type: application/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit

<feedItem>
   <body>
      <messageSegments>
         <segment>
            <text>High priority content </text>
            <type>Text</type>
         </segment>
         <segment>
             <tag>important</tag>
            <type>Hashtag</type>
         </segment>
         <segment>
            <text>Please review this as soon as possible</text>
            <type>Text</type>
         </segment>
      </messageSegments>
   </body>
   <attachment>
      <desc>Quarterly review</desc>
      <title>2012_q1</title>
   </attachment>
</feedItem>
--0HWq8x4y4DSQ4fqjXt6MinVMyqbf1r
Content-Disposition: form-data; name="feedItemFileUpload"; title="2012_q1_review.ppt"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary

binary stream of file

--0HWq8x4y4DSQ4fqjXt6MinVMyqbf1r--

How would the example above be modified to upload a User Photo?

share|improve this question
    
This might help developer.force.com/cookbook/recipe/… –  techtrekker Dec 7 '12 at 22:01
    
That's not really what I'm after. I'm looking for the HTTP POST data (similar to above), but modified for a User Photo POST. I'm trying to put together the POST data in C# to send the it using an HttpWebRequest. –  Matt K Dec 7 '12 at 22:20

1 Answer 1

up vote 1 down vote accepted

Here's the POST data that ended up working for me. I had to use JSON instead of XML in the first part of the POST (after the first boundary) because XML was returning an UNKNOWN EXCEPTION. I'm sure there's a way to use XML, though; I just don't know how.

POST https://cs7.salesforce.com/services/data/v26.0/chatter/users/[my-user-id]/photo HTTP/1.1
Accept: application/xml
Content-Type: multipart/form-data; boundary=8cfa66b1737e032
Authorization: OAuth [my-session-id]
Host: [my-Salesforce-instance-name].salesforce.com
Content-Length: 32075
Expect: 100-continue

--8cfa66b1737e032
Content-Disposition: form-data; name="json"
Content-Type: application/json; charset=UTF-8

{}
--8cfa66b1737e032
Content-Disposition: form-data; name="fileUpload"; filename="photo.jpg"
Content-Type: application/octet-stream; charset=ISO-8859-1
Content-Transfer-Encoding: binary

[binary-file-bytes]
--8cfa66b1737e032--
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.