【问题标题】:Updating youtube privacyStatus getting madeForKidsModificationNotAllowed error更新 youtube 隐私状态正在制作ForKidsModificationNotAllowed 错误
【发布时间】:2021-07-11 02:14:56
【问题描述】:

我正在使用 youtube API 更新直播隐私设置,如下所示:

gapi.client.youtube.liveBroadcasts.update({
      "part": [
        "id,status"
      ],
      "resource": {
        "id": "ID_OF_STREAM",
        "status": {
          "privacyStatus": "public"
        }
      }
    }) 

它返回一个错误:

{
  "error": {
    "code": 403,
    "message": "The madeForKids field is read-only",
    "errors": [
      {
        "message": "The madeForKids field is read-only",
        "domain": "youtube.liveBroadcast",
        "reason": "madeForKidsModificationNotAllowed",
        "extendedHelp": "https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#status.madeForKids"
      }
    ]
  }
}

为什么 youtube 认为我正在更新 madeForKids 属性?我只想将流的隐私设置从“公共”更改为“私人”,反之亦然。

【问题讨论】:

    标签: javascript google-api youtube-api youtube-livestreaming-api


    【解决方案1】:

    如果您查看文档LiveBroadcasts: update,您会发现以下内容

    PUT https://www.googleapis.com/youtube/v3/liveBroadcasts
    

    此调用是 HTTP PUT 请求而不是 HTTP PATCH 请求。

    HTTP PUT 请求方法创建新资源或用请求负载替换目标资源的表示。

    我怀疑您将它与 HTTP PATCH 请求混淆了

    HTTP PATCH 请求方法将部分修改应用于资源。

    对于 HTTP PUT 请求,API 假定您正在发送您想要更新的所有内容。因此,您作为 null 发送的任何字段都将尝试更新为 NULL,并且该字段是只读的,因此您无法更新它。因此,如果您不想更新某个字段,则需要将其当前值发送回服务器,否则它将被更新为 null。

    【讨论】:

      猜你喜欢
      • 2017-01-25
      • 1970-01-01
      • 2015-07-25
      • 2018-07-01
      • 1970-01-01
      • 2017-10-15
      • 2020-07-02
      • 2021-02-03
      • 2016-07-21
      相关资源
      最近更新 更多