Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Privacy Service API request from Firefly Sample App

alexb75062655
Level 2
Level 2

I've created a project with the intention of using the Privacy Service APIs.

 

So i've made a few small tweaks:
1) Changed the endpoint to "https://platform.adobe.io/data/core/privacy/jobs?regulation=gdpr&size=100"
2) Changed requiredHeaders to include ['Authorization', 'x-api-key', 'x-gw-ims-org-id']
I've tried the request in Postman and it works fine, so I know there isn't an issue with the headers, but when I run it in localhost I get a 500 error:

 Screenshot 2020-06-11 at 12.21.28.png

 

Am I missing something obvious?
Edit: I didn't mention that I'm just using the sample app that gets generated, and then in index.js I've adjusted the requiredHeaders & apiEndpoint values:

 Screenshot 2020-06-12 at 08.37.42.png

 

 

 

1 Accepted Solution
dr_venture
Correct answer by
Employee
Employee

I am double-checking with some people to make sure there are no handy helper libs but essentially you will need to forward the headers from the action invoke to your secondary service call.

const res = await fetch(apiEndpoint,{
  headers:{
    "authorization": params.__ow_headers["authorization"],
    "x-api-key": params.__ow_headers["x-api-key"],
    "w-gw-ims-org-id": params.__ow_headers["w-gw-ims-org-id"],
    "x-api-key": params.__ow_headers["x-api-key"]
  }
})

 

View solution in original post

10 Replies
dr_venture
Employee
Employee

Can you post a sample of the code in question?  It is hard to tell the problem from that error message.    

alexb75062655
Level 2
Level 2
I've added some additional info in the question; let me know if more is needed
dr_venture
Employee
Employee

I don't see an error in the code you posted.

In fact, I took the section of code you shared and ran it local and it worked fine. 

500 could be coming from the privacy service.  When you do the fetch on the privacy endpoint are you including all the needed headers, params, and auth needed to make that call?

 

const requiredParams = []
    const requiredHeaders = ['Authorization','x-api-key','w-gw-ims-org-id']
    const errorMessage = checkMissingRequestInputs(params, requiredParams, requiredHeaders)
    if (errorMessage) {
      // return and log client errors
      return errorResponse(400, errorMessage, logger)
    }

 

alexb75062655
Level 2
Level 2

These are the debug statements I'm seeing:

Screenshot 2020-06-16 at 00.26.07.png

I'm using Postman to make a request to the same endpoint with the same 4 headers (authorization, content-type, x-gw-ims-org-id and x-api-key) and header values, not seeing any issues.  

 

dr_venture
Employee
Employee
That would indicate not allowed. Would you mind posting the section of code where you make the fetch call to the privacy server? plz
alexb75062655
Level 2
Level 2

So from the framework that was generated, the only things I've changed are row33 and row45

Screenshot 2020-06-16 at 14.11.25.png

I'm using the 'generic' action name:

Screenshot 2020-06-16 at 14.01.08.png

dr_venture
Correct answer by
Employee
Employee

I am double-checking with some people to make sure there are no handy helper libs but essentially you will need to forward the headers from the action invoke to your secondary service call.

const res = await fetch(apiEndpoint,{
  headers:{
    "authorization": params.__ow_headers["authorization"],
    "x-api-key": params.__ow_headers["x-api-key"],
    "w-gw-ims-org-id": params.__ow_headers["w-gw-ims-org-id"],
    "x-api-key": params.__ow_headers["x-api-key"]
  }
})

 

View solution in original post

dr_venture
Employee
Employee
I will still look around and see if we have helper libs. If not maybe we should make an AdobeFetch that will auto wrap up and pass the auth for you.