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