GC-Josh
November 22, 2021, 10:29am
1
I am trying to connect to my CMSโ sandbox environment from a Next.JS application using graphql-request, but everything I do makes it 401.
Connecting to the main environment works just fine.
I am using my sandbox URL (https://graphql.datocms.com/environments/main-copy-2021-11-22 ).
My headers look like this:
const headers = {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_TOKEN}`,
Environment: `main-copy-2021-11-22`
};
I am sure the API token is correct, because it works fine with the main environment, and the API keys are identical for both.
Is there something I am missing?
The error it returns is:
{"data":[{"id":"5413bc","type":"api_error","attributes":{"code":"INVALID_AUTHORIZATION_HEADER","details":{}}}]}
1 Like
Hello @GC-Josh
You can use this documentation page for an example on what headers to use. You can see that the environment header is called โX-Environmentโ (also, remember to use JSON.stringify(โฆ) on your headers)
And this documentation page to see how you can handle requests made like that with graphQL.
Remembering you can always use the datocms-client package to set up a sandbox client with ease using:
const client = new SiteClient(
'YOUR_API_READWRITE_TOKEN',
{ environment: 'my-sandbox' },
);
Let me know if it works!
1 Like
GC-Josh
November 22, 2021, 2:11pm
3
Thank you for the suggestion @m.finamor
It turns out that the API key I was using was only valid for the main environment, but not the sandbox environment. I got a new one and that worked just fine.
2 Likes