You need to sign in to do that
Don't have an account?
Sandeep Agrawal
Jave code to post image to chatter user using rest api
I need java code to post a image to chatter user using rest api.
I am using below code but it is not working for me:
Part[] parts = { //new StringPart("desc", "Description"), new StringPart("body",stringBody), //new StringPart("fileName", fileName), //new StringPart("text", noteContent), new FilePart("feedItemFileUpload", imageFile), }; postMethod = new PostMethod(url); postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams())); postMethod.setRequestHeader("Authorization", "OAuth " + salesforceRestClient.getAuthToken()); postMethod.setRequestHeader("Content-type", "multipart/form-data"); org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient(); int code =client.executeMethod(postMethod); public static String generateJSONBodyForChatterFeed(String content, ArrayList<String> mentionIds, String imageDescription, String fileName, String imageTitle) { JSONArray msg = new JSONArray(); String bodyString = null; JSONObject requestJSON=null; try { if (mentionIds != null) { for (int i = 0; i < mentionIds.size(); i++) { JSONObject mention = new JSONObject(); mention.put("type", "mention"); mention.put("id", mentionIds.get(i)); msg.put(mention); } } if (content != null) { JSONObject text = new JSONObject(); text.put("type", "text"); text.put("text", " " + content); msg.put(text); } JSONObject attachment = null; if (fileName != null && imageTitle != null) { attachment = new JSONObject(); attachment.putOpt("desc", imageDescription); attachment.putOpt("fileName", fileName); attachment.putOpt("title", imageTitle); } requestJSON= new JSONObject(); requestJSON.putOpt("body", new JSONObject().put("messageSegments", msg)); if (attachment != null) { requestJSON.putOpt("attachment", attachment); } bodyString = requestJSON.toString(); NotepriseLogger.logMessage("Json"+requestJSON); } catch (JSONException e) { e.printStackTrace(); } return bodyString; }
Please suggest some solution for it.
Thanks
How is generateJSONBodyForChatterFeed() called? It looks like you're setting "body" as a StringPart, which won't work, as that part needs a content-type of application/json...
Stringbody will be having the out put of generateJSONBodyForChatterFeed() which will be string format of json.
what modification I need to do for this "It looks like you're setting "body" as a StringPart, which won't work, as that part needs a content-type of application/json..."
Thanks
I am getting below error
"[{"message":"Creating a text post requires text","errorCode":"MISSING_ARGUMENT"}]"
If I remove below line :
postMethod.setRequestHeader("Content-type", "multipart/form-data");
it is giving this error
[{"message":"Text posts should not include binary data.","errorCode":"POST_BODY_PARSE_ERROR"}]
Please let me know working code if you have.
Thanks