You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Monday.com API创建指定工作区看板返回200但未成功问题排查

问题分析与解决

首先,返回200不代表看板创建成功。Monday.com的GraphQL API即使请求存在语法错误或业务逻辑错误,HTTP状态码仍可能返回200,实际错误信息会包含在响应体的errors字段中。你遇到的问题和看板是否添加数据无关,核心是你的GraphQL查询存在语法错误。

代码中的问题

你的GraphQL mutation里,字符串类型的参数(board_kind、board_name、description、workspace_id)没有用双引号包裹,这会导致GraphQL解析失败。比如board_kind: {board_kind}会被解析为board_kind: private,而private是未定义的变量,不是字符串字面量,直接触发语法错误。

修复后的代码

import requests
import json
import timeit  # 原代码遗漏了该模块的导入

start = timeit.default_timer()

apiKey = 'xxx'
apiUrl = "https://api.monday.com/v2"
headers = {"Authorization" : apiKey,
           "Content-Type" : 'application/json',
           "API-Version" : '2023-10'}

board_kind = 'private'
board_name = 'Baulder Gate 3'
description = 'My Campaign'
workspace_id = 'xxx'

# 为字符串参数添加双引号,符合GraphQL语法要求
payload = f"""
mutation {{
    create_board (
        board_kind: "{board_kind}",
        board_name: "{board_name}",
        description: "{description}",
        workspace_id: "{workspace_id}") {{
        id
        }}
}}
"""

data = {'query' : payload}
r_boards = requests.post(url=apiUrl, headers=headers, data=json.dumps(data))

# 打印响应体,直接查看GraphQL的执行结果或错误信息
print(r_boards.json())
if r_boards.status_code == 200 and 'errors' not in r_boards.json():
    print("board was created")

额外建议

  • 发送请求后务必打印响应的JSON内容,不要只依赖HTTP状态码判断结果,这样能直接定位GraphQL层面的错误。
  • 确认你的API密钥拥有对应工作区的看板创建权限,权限不足也会导致创建失败但返回200,错误信息会明确提示权限问题。

内容的提问来源于stack exchange,提问作者Binx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:02:40