How to login to confluence using REST API

Hi,

For Login,
* In JIRA, API there is POST /rest/auth/1/session
* In Confluence, is there something similar equivalent API for confluence login ?

We couldn't find in Confluence REST API browser or in documentation. Just wondering how to get this.

I am planning to use VBA to communicate with confluence using confluence rest APIs to post the  data we have generated on the macro enabled(.xlsm)  excel workbook.

This is required for our activities to login & upload content

Appreciate if any advise/suggestions

2 answers

0 vote
Alexey Matveev Community Champion Nov 20, 2017

Hello,

I also did not find such REST call. But you can pass authentication in headers. Yes, you would pass it with every REST call but it would do the job.

Hi Alexey,

Thanks for the reply, can you please suggest the confluence login API for this.

Alexey Matveev Community Champion Nov 20, 2017

That is example for the JQUERY

//This creates a page in a space.
var username = "admin";
var password = "admin";
var jsondata = {"type":"page",
 "title":"My Test Page",
 "space":{"key":"TST"},
 "body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}};
  
$.ajax
  ({
    type: "POST",
    url: "http://localhost:8080/confluence/rest/api/content/",
    contentType:"application/json; charset=utf-8",
    dataType: "json",
    async: false,
    headers: {
        "Authorization": "Basic " + btoa(username+ ":" + password)
    }, 
    data: JSON.stringify(jsondata),
    success: function (){
        console.log('Page saved!'); 
    },
    error : function(xhr, errorText){
  console.log('Error '+ xhr.responseText);
 }
});

You can read more here

https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples 

I am behind a corporate proxy so the solution above didn't work for me, what I needed to do is to log in first, save the JSESSIONID as a cookie and then use it in subsequent calls. 

This is a basic example in python

import json
import httplib2
import urllib

get_url = "https://<your confluence url>/rest/api/content/<your page id>?expand=body.storage"
login_url = "https://<your confluence url>/dologin.action"
username = "<your user name here>"
password = "<your password>"

h = httplib2.Http(".cache")

headers = {'Content-type': 'application/x-www-form-urlencoded'}
body={'os_username': username, 'os_password': password}
resp, content = h.request(
uri=login_url,
method='POST',
headers = headers,
body=urllib.urlencode(body)
)
cookies = resp.get("set-cookie")
headers = {'Cookie': cookies}

response, content = h.request(get_url, 'GET', headers=headers)

obj = json.loads(content)
print (obj['body']['storage']['value'])

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Kesha Thillainayagam
Posted Apr 13, 2018 in Confluence

We want to hear how your non-technical teams are using Confluence!

Hi Community! Kesha (kay-sha) from the Confluence marketing team here! Can you share stories with us on how your non-technical (think Marketing, Sales, HR, legal, etc.) teams are using Confluen...

2,916 views 27 12
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you