使用Smartsheet API Python SDK创建单元格链接时遇400错误求助
Smartsheet API创建单元格链接报错(错误码5262)的解决方法
问题描述
使用Smartsheet API Python SDK跨工作表创建单元格链接时,收到如下400错误:
{"response": {"statusCode": 400, "reason": "Bad Request", "content": {"errorCode": 5262, "message": "Unable to create the requested cell link(s). The source data is no longer accessible.", "refId": "amtr23"}}}账号是其中一个工作表的所有者、另一个工作表的管理员(测试过双所有者场景,结果一致),且能通过Smartsheet界面手动创建该链接,核心代码如下:
row = Row() row._id_ = Number(sheetA_row_id) cells = TypedList(Cell) cell = Cell() explicitnull = ExplicitNull() cell._value = explicitnull cell._column_id = Number(A_column_id) celllink = CellLink() celllink._column_id = Number(B_column_id) celllink._row_id = Number(sheetB_row_id) celllink._sheet_id = Number(sheetB_id) _celllink = TypedObject(CellLink) _celllink.value = celllink cell._link_in_from_cell = _celllink cells.insert(0, cell) row._cells = cells row_update = smartsheet.sheets.Sheets.update_rows(sheets, sheetA_id, row)
错误原因
错误码5262提示“源数据无法访问”,但手动操作正常,问题出在API参数的逻辑设置:
- 代码中误用了
_link_in_from_cell属性,该属性的作用是将外部单元格的数据导入到当前单元格(当前单元格为目标),但你实际需要的是从当前单元格链接到源单元格,方向搞反了。 - 多余的
cell._value = explicitnull设置可能干扰了API的链接创建逻辑,手动操作时无需显式设置空值。
解决步骤
1. 修正链接属性方向
将cell._link_in_from_cell改为cell._link_out_to_cell,该属性对应手动创建单元格链接的逻辑:从当前单元格链接到指定的源单元格,同步源数据并支持跳转。
2. 移除不必要的空值设置
删除explicitnull = ExplicitNull()和cell._value = explicitnull这两行代码,创建链接时无需显式赋值空值。
修正后的代码
row = Row() row._id_ = Number(sheetA_row_id) cells = TypedList(Cell) cell = Cell() cell._column_id = Number(A_column_id) celllink = CellLink() celllink._column_id = Number(B_column_id) celllink._row_id = Number(sheetB_row_id) celllink._sheet_id = Number(sheetB_id) _celllink = TypedObject(CellLink) _celllink.value = celllink cell._link_out_to_cell = _celllink # 修正属性名 cells.insert(0, cell) row._cells = cells row_update = smartsheet.sheets.Sheets.update_rows(sheets, sheetA_id, row)
额外验证
- 确认
sheetB_id、sheetB_row_id、B_column_id等参数数值完全正确,无拼写或数值错误。 - 确保API调用使用的token对应的账号和手动操作的账号为同一账号,避免权限不一致问题。
内容的提问来源于stack exchange,提问作者UnleashNRK
相关产品推荐
相关产品推荐

