The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

APi call works in Postman but not in Scriptrunner console

Tom Lister
Community Champion
May 9, 2023

Whilst working out the syntax for calling the Assets API in cloud I have hit an anomaly that is blocking progress.

In Postman I can make this API call,

https://api.atlassian.com/jsm/assets/workspace/<workspaceid>/v1/object/278

using basic auth with my userid and my generated API token, I get the expected Asset object response.

If I make the same call in the cloud script-console (I am looking to eventually make these calls in workflow post-functions), I get a 401 Unauthorised error.

String authString2 = "<userid>:<mytoken>".bytes.encodeBase64().toString() //cloud APi token

// hardcoded test
def objects = get("https://api.atlassian.com/jsm/assets/workspace/<workspaceid>/object/278")
.header('Content-Type', 'application/json')
.header('Accept', 'application/json')
.header('Authorization','Basic ${authString2}')
.asObject(Map)
.body

logger.info("test " + objects)

This is whether I run the console as Current User or Scriptrunner Add-on user.

Does anyone know what the difference would be. Are there API permissions I need to set in the Cloud?

 

1 answer

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

1 vote
Answer accepted
Ram Kumar Aravindakshan _Adaptavist_
Community Champion
May 9, 2023

Hi @Tom Lister

Could you try to make a minor modification in your get request, i.e. change the Authorization header from

.header('Authorization','Basic ${authString2}')

to

.header('Authorization',"Basic ${authString2}")

and see if it makes any difference.

I'm suggesting this because using the Groovy variable invocation, i.e. ${} and single quotes is not the correct approach. It should be with double quotes.

I hope this helps to answer your question. :-)

Thank you and Kind regards,

Ram

Tom Lister
Community Champion
May 10, 2023

Hi @Ram Kumar Aravindakshan _Adaptavist_ 

The double quotes works.

Thanks

DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
PREMIUM
PERMISSIONS LEVEL
Product Admin
TAGS
AUG Leaders

Atlassian Community Events