Hi,
We are using confluence cloud instance,
we are trying to edit the existing confluence page using the page ID.I have attached the code below.
public static void main(String[] args) throws JSONException,
AuthenticationException, ClientHandlerException,
ClassNotFoundException, SQLException, ParseException, IOException {
String urlLink = "";
String auth = new String(Base64.encode(""));
String updatePage =
"{\n" +
"\"type\":\"page\",\n" +
"\"ancestors\":\n" +
" [\n" +
" {\n" +
" \"type\":\"page\",\n" +
" \"id\":1501003952\n" +
" }\n" +
" ],\n" +
"\"title\":\"Sprint Macro\",\n" +
"\"space\":\n" +
" {\n" +
" \"key\":\"LAS\"\n" +
" },\n" +
"\"body\":\n" +
" {\n" +
" \"storage\":\n" +
" {\n" +
" \"value\":\"<ac:structured-macro ac:name=\\\"attachments\\\">\n" +
" <ac:parameter ac:name=\\\"old\\\">false<\\/ac:parameter> <ac:parameter ac:name=\\\"patterns\\\">*<\\/ac:parameter> \n" +
" <ac:parameter ac:name=\\\"sortBy\\\">name<\\/ac:parameter> <ac:parameter ac:name=\\\"sortOrder\\\">ascending<\\/ac:parameter> \n" +
" <ac:parameter ac:name=\\\"labels\\\"><\\/ac:parameter> <ac:parameter ac:name=\\\"upload\\\">false<\\/ac:parameter> <\\/ac:structured-macro>\",\n" +
" \"representation\":\"storage\"\n" +
" }\n" +
" }\n" +
"}";
// rest/api/content/
// System.out.println(updatePage);
String Page = invokePostMethod(auth, urlLink ,updatePage);
}
private static String invokePostMethod(String auth, String url, String data)
throws AuthenticationException, ClientHandlerException {
Client client = Client.create();
WebResource webResource = client.resource(url);
ClientResponse response = webResource
.header("Authorization", "Basic " + auth)
.type("application/json").accept("application/json")
.post(ClientResponse.class, data);
System.out.println("Client Responce " + response);
int statusCode = response.getStatus();
System.out.println("Status Code " + statusCode);
if (statusCode == 401) {
throw new AuthenticationException("Invalid Username or Password");
}
return response.getEntity(String.class);
}
}
Please correct me if i missed anywhere in the code.
Thanks
Naveen
@Naveen Kumar D P Can you please elaborate on error you are getting?
When i run the above command i got the following error,
returned a response status of 500 Internal Server Error
Status Code 500
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Naveen Kumar D P Can you please validate if this curl works for you?
curl -u '<EMAIL>:<TOKEN>' -X PUT -H 'Content-Type: application/json' -d'{"id":"<PAGE_ID>","type":"page","title":"Sample Page","space":{"key":"<SPACE_KEY_OF_PAGE>"},"body":{"storage":{"value":"<p>This is the updated text for the new page</p>","representation":"storage"}},"version":{"number": <PAGE_VERSION_PLUS_ONE>}}' https://<SITE_NAME>.atlassian.net/wiki/rest/api/content/<PAGE_ID>
Few things you can notice here are,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you very much @DPKJ it was working ,
I am able to update the message to the page.
But i am not able to add the JIRA Macro to this page using this curl command.
curl -u '<EMAIL >: <Tokens> -X PUT -H 'Content-Type: application/json' -d'{"id":"1501003952","type":"page","title":"Sprint Macro","space":{"key":"LAS"},"body":{"storage":{"value":"<p /><ac:structured-macro ac:name="jira" ac:schema-version="1" data-layout="full-width" ac:macro-id="fab6f027-6261-4a0c-a326-e38efd4a27a2"><ac:parameter ac:name="server">System JIRA</ac:parameter><ac:parameter ac:name="maximumIssues">20</ac:parameter><ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution</ac:parameter><ac:parameter ac:name="jqlQuery">sprint = "2019.11.s2" and status in(Done,Close) and project = "Last Mile" </ac:parameter><ac:parameter ac:name="serverId">***-**-***-***</ac:parameter></ac:structured-macro>
<p />","representation":"storage"}},"version":{"number": "3"}}' https://***/rest/api/content/1501003952
When i tried the above command i got this error.
{"statusCode":500,"message":"org.codehaus.jackson.JsonParseException: Unexpected character ('j' (code 106)): was expecting comma to separate OBJECT entries\n at [Source: com.atlassian.plugins.rest.common.limitrequest.jersey.LimitingRequestFilter$1@7f0896c5; line: 1, column: 143]"}%
Could you please help me on this.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Naveen Kumar D P I was able to add history macro to page this way, you can replace this with other kind of macro.
curl --request PUT \
--url 'https://<SITE>.atlassian.net/wiki/rest/api/content/<PAGE_ID>' \
--user '<EMAIL>:<TOKEN>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"id":"<PAGE_ID>",
"type":"page",
"title":"Sample Page",
"space":{"key":"<PAGE_SPACE_KEY>"},
"body":{
"storage":{
"value":"<p>This is the updated text for the new page</p><ac:structured-macro ac:name=\"change-history\" ac:schema-version=\"1\" ac:macro-id=\"360a0d80-082e-4c82-9ee5-0aac5b72f828\" />",
"representation":"storage"
}
},
"version":{"number":<NEXT_VERSION_NUMBER>}
}'
Check if this works.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@DPKJ Thanks for your help,
I am new to the curl.
In the macro name i used the JIRA name but i am not able to succeed .
curl --request PUT \
--url '***' \
--user '<<:>>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"id":"1501003952",
"type":"page",
"title":"Sprint Macro",
"space":{"key":"LAS"},
"body":{
"storage":{
"value":"<p>This is the updated text for the new page</p><ac:structured-macro ac:name=\"jira\" ac:schema-version=\"1\" ac:macro-id=\"fab6f027-6261-4a0c-a326-e38efd4a27a2\">
<ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution</ac:parameter>
<ac:parameter ac:name="jqlQuery">sprint = "2019.11.s2" and status in(Done,Close) and project = "Last Mile"
</ac:parameter><ac:parameter ac:name="serverId">3f701a8d-470a-3309-8926-3b7be06fa653</ac:parameter></ac:structured-macro>",
"representation":"storage"
}
},
"version":{"number":3}
}'
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Let me give it a trial.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sure . Please let me know if that is working for you!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Naveen Kumar D P Below worked for me while using Jira Issue Macro,
curl --request PUT \
--url 'https://<SITE>.atlassian.net/wiki/rest/api/content/<PAGE_ID>' \
--user '<EMAIL>:<TOKEN>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"id":"<PAGE_ID>",
"type":"page",
"title":"Sample Page",
"space":{"key":"<PAGE_SPACE>"},
"body":{
"storage":{
"value":"<p>This is the updated text for the new page</p><ac:structured-macro ac:name=\"jira\" ac:schema-version=\"1\" ac:macro-id=\"85529c8c-75ad-4bf1-8bc3-da4e55f6d9d7\"><ac:parameter ac:name=\"columns\">key,summary,type</ac:parameter><ac:parameter ac:name=\"jqlQuery\">project=SP</ac:parameter><ac:parameter ac:name=\"server\">System JIRA</ac:parameter><ac:parameter ac:name=\"serverId\">e70747f5-eb31-3622-acda-6395ba8705ce</ac:parameter></ac:structured-macro>",
"representation":"storage"
}
},
"version":{"number":13}
}'
I think only difference is that I have escaped value of parameters in macro, you will be easily able to compare this.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.