TypeError: Cannot read property 'getContentTypes' of undefined
Hello ! First of all thanks for this package, It will be really useful to me 👍
I have this issue while trying to generate types. I created the getContentfulEnvironment in the root of the project like that :
const contentfulManagement = require("contentful-management");
module.exports = function () {
const contentfulClient = contentfulManagement.createClient({
accessToken: "myaccesstoken",
host: "cdn.contentful.com",
});
return contentfulClient.getSpace("myspaceid").then((space) => {
space.getEnvironment("master");
});
};
then I just ran npm run contentful-typescript-codegen and I get this error :
TypeError: Cannot read property 'getContentTypes' of undefined
Thanks and have a great day !
@AlexandreVerhoye it seems you need to return space.getEnvironment("master")
can you try this?
const contentfulManagement = require("contentful-management");
module.exports = function () {
const contentfulClient = contentfulManagement.createClient({
accessToken: "myaccesstoken",
host: "cdn.contentful.com",
});
return contentfulClient.getSpace("myspaceid").then((space) => {
return space.getEnvironment("master");
});
};
Hey, now I have this error :
NotFound: {
"status": 404,
"statusText": "Not Found",
"message": "The resource could not be found.",
"details": {},
"request": {
"url": "/spaces/xxxxxxxxx/environments/master",
"headers": {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/vnd.contentful.management.v1+json",
"X-Contentful-User-Agent": "sdk contentful-management.js/7.45.0; platform node.js/v14.18.1; os macOS/21.1.0;",
"Authorization": "Bearer xxxxx",
"user-agent": "node.js/v14.18.1",
"Accept-Encoding": "gzip"
},
"method": "get"
},
"requestId": "xxxxxx"
}
@AlexandreVerhoye hmmm... can you try just this? and make sure the Access token you add is your Personal Access Token. omit host and try.
const contentfulManagement = require("contentful-management");
module.exports = function () {
const contentfulClient = contentfulManagement.createClient({
accessToken: "myaccesstoken",
});
return contentfulClient.getSpace("myspaceid").then((space) => {
return space.getEnvironment("master");
});
};
I'm getting this error :
AccessTokenInvalid: {
"status": 403,
"statusText": "Forbidden",
"message": "The access token you sent could not be found or is invalid.",
"details": {},
"request": {
"url": "/spaces/xxxxx",
"headers": {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/vnd.contentful.management.v1+json",
"X-Contentful-User-Agent": "sdk contentful-management.js/7.45.0; platform node.js/v14.18.1; os macOS/21.1.0;",
"Authorization": "Bearer ...xxxx",
"user-agent": "node.js/v14.18.1",
"Accept-Encoding": "gzip"
},
"method": "get"
},
"requestId": "c1d77801-035f-4a69-b6de-3ba849d66d38"
}
They are the same credential I'm using to fetch data on my nextjs project
Based on my experience (and another issue posted here), it seems like if you are trying to hide your info in an environment variable and then access them in the .getContentfulEvironment.js file then it doesn't work properly (I got the exact same error messages). Once I hard entered the token, space, and environment names into the file it worked perfectly.
Might be late for this, but in my case it was the difference between tokens, the contentful-management library requires a different type of token that you can find under this section in settings > api keys
