标签: contentful-management

更新内容条目

我在尝试使用 Javascript 中的典型 http 请求更新 Contentful 条目时遇到了困难;我收到错误代码“VersionMismatch”,根据文档,这意味着:

当您尝试更新现有资产、条目或内容类型,并且未指定对象的当前版本或指定过时的版本时,会出现此错误。

但是,我已根据文档使用“X-Contentful-Version”标头参数指定了条目的当前版本,并使用“entry.sys.revision”中的动态属性值作为参数值(以及对当前版本进行硬编码,加上一堆不同的数字,但我总是收到相同的错误)。这篇文章报告了完全相同的问题,但似乎通过添加此标头参数解决了。

这是我当前的代码,它也使用 Contentful API 从我的 Contentful 空间检索条目,但由于特定要求,我必须使用纯 Javascript 来将数据放回:

var client = contentful.createClient(
    {
        space: space_id,
        accessToken: client_token
    }
);

client.getEntry(entry_id).then((entry) => entry).then(function(entry) {

    // update values of entry
    entry.fields.title = "Testing";

    // post data to contentful API
    var request = new XMLHttpRequest();
        request.open('PUT', 'https://api.contentful.com/spaces/' + space_id + '/entries/' + entry_id);
        request.setRequestHeader('Authorization', 'Bearer my_access_token');
        request.setRequestHeader('Content-Type', 'application/vnd.contentful.management.v1+json');
        request.setRequestHeader('X-Contentful-Content-Type', entry.sys.contentType.sys.id);

        // setting the 'X-Contentful-Version' header with current/soon to be old version
        request.setRequestHeader('X-Contentful-Version', …
Run Code Online (Sandbox Code Playgroud)

contentful contentful-management

3
推荐指数
1
解决办法
9128
查看次数

如何获取contentful中的access_token?

我不知道如何获取内容丰富的访问令牌。我尝试了很多搜索、复制/粘贴各种“解决方案”,但没有一个对我有用。请帮助我解决这个问题。

contentful contentful-management

1
推荐指数
1
解决办法
4194
查看次数

内容丰富的API:上传并将图像分配给条目

我一直在使用Contentful Management Javascript SDK更新Contentful空间中的条目,并且能够使用文本更新简单字段没有问题.

我的问题是我无法弄清楚如何在我的条目中更新图像 ; 我可以将图像上传到媒体部分,但我无法任何图像分配给入口属性.

这是可能的还是Contentful的限制?

到目前为止,这是我的代码:

client.getSpace(CONTENTFUL_SPACE).then((space) => {
// retrieve my Contentful space

    space.getEntry(CONTENTFUL_ENTRY).then(function (entry) {
    // get a specific entry

        // create a new asset in my Contentful media section
        space.createAssetWithId(RANDOM_ID, {
            fields: {
                file: {
                    'en-GB': { 
                        contentType: 'image/jpeg',
                        fileName: 'test.jpg',
                        upload: 'http://www.example.com/test.jpg'
                    }
                }
            }
        })
        .then(asset => asset.processForAllLocales())
        .then(asset => asset.publish())
        .then(function(asset) {

            // assign uploaded image as an entry field
            // (none of these work:)
            entry.fields["image"]["en-GB"] …
Run Code Online (Sandbox Code Playgroud)

contentful contentful-management

0
推荐指数
1
解决办法
753
查看次数

如何使用 contentful-management 在一次 api 调用中将资产添加到条目中?

我想添加一个资产和一个条目。我正在使用表单输入一些数据并上传图像,所有这些都在一个 API 调用中完成。我使用 cloudinary 来存储图像,但 Contentful-Management 给了我 409 状态代码和“版本不匹配”错误。

这些是我在下面采取的步骤(如果您看到我忽略的步骤,请添加任何步骤,非常感谢)

#1. Get space by space id
#2. Get environment
#3. Create Entry
#4. Create a new asset
#5. Assign uploaded image as an entry field
Run Code Online (Sandbox Code Playgroud)

data ”是我发布帖子所需的所有数据,uploadHref 是来自 Cloudinary 的单个图像的链接。

#1. Get space by space id
#2. Get environment
#3. Create Entry
#4. Create a new asset
#5. Assign uploaded image as an entry field
Run Code Online (Sandbox Code Playgroud)

contentful contentful-management next.js contentful-api headless-cms

0
推荐指数
1
解决办法
2981
查看次数