Smartsheet webhook 子范围
Smartsheet webhook subscope
我正在尝试使用以下代码在 python 我的一张工作表中创建一个包含特定列子范围的 webhook:
my_webhook = smartsheet_client.Webhooks.create_webhook(
smartsheet.models.Webhook({
'name': 'test 10',
'callbackUrl': 'https://my_web.com/webhook/test10',
'scope': 'sheet',
'scopeObjectId': 0000000000000000,
'subscope': {'columnIds': [0000000000000000]},
'events': ['*.*'],
'version': 1
}))
当我获得成功创建的 webhook 及其 ID 时,响应中缺少子范围。
有谁知道我做错了什么吗?
我对 Smartsheet Python SDK 不是很熟悉,但总的来说,每当我有关于如何使用SDK实现某个操作的问题。在这种情况下,SDK 存储库中的 integration test for webhooks 显示了以下用于创建 webhook 的代码:
def test_create_webhook(self, smart_setup):
smart = smart_setup['smart']
webhook = smart.models.Webhook()
webhook.name = 'My Webhook'
webhook.callback_url = 'https://www.smartsheet.com'
webhook.scope = 'sheet'
webhook.scope_object_id = smart_setup['sheet'].id
webhook.events.append('*.*')
webhook.version = 1
webhook.subscope = smart.models.WebhookSubscope({'column_ids': [smart_setup['sheet'].columns[0].id]})
action = smart.Webhooks.create_webhook(webhook)
assert action.message == 'SUCCESS'
assert isinstance(action.result, smart.models.Webhook)
TestWebhooks.webhook = action.result
请特别注意 subscope
属性 的设置方式与您在上面发布的方式不同。我建议尝试根据此代码对您的代码进行更多建模,看看您是否可以达到预期的结果。
您的代码与我的几乎完全相同,子范围也不适合我。我从 smartsheet-python-sdk pip 包 2.86 升级到 2.105,现在我的 webhook 设置正确。我还验证了 subscope 设置有效,这大大减少了我必须处理的事件数量。
这是我的代码(尽管它与您的代码基本相同)。
def createSheetWebhook(name, sheet_id, target, subscope=[]):
new_webhook = smartsheet_client.Webhooks.create_webhook(
smartsheet.models.Webhook({
"name": F"sheet changes for {name}",
"callbackUrl": target,
"scope": 'sheet',
"scopeObjectId": sheet_id,
"subscope": {
"columnIds": subscope
},
"events": ['*.*'],
"version": 1
})
)
return new_webhook.result.id
我正在尝试使用以下代码在 python 我的一张工作表中创建一个包含特定列子范围的 webhook:
my_webhook = smartsheet_client.Webhooks.create_webhook(
smartsheet.models.Webhook({
'name': 'test 10',
'callbackUrl': 'https://my_web.com/webhook/test10',
'scope': 'sheet',
'scopeObjectId': 0000000000000000,
'subscope': {'columnIds': [0000000000000000]},
'events': ['*.*'],
'version': 1
}))
当我获得成功创建的 webhook 及其 ID 时,响应中缺少子范围。 有谁知道我做错了什么吗?
我对 Smartsheet Python SDK 不是很熟悉,但总的来说,每当我有关于如何使用SDK实现某个操作的问题。在这种情况下,SDK 存储库中的 integration test for webhooks 显示了以下用于创建 webhook 的代码:
def test_create_webhook(self, smart_setup):
smart = smart_setup['smart']
webhook = smart.models.Webhook()
webhook.name = 'My Webhook'
webhook.callback_url = 'https://www.smartsheet.com'
webhook.scope = 'sheet'
webhook.scope_object_id = smart_setup['sheet'].id
webhook.events.append('*.*')
webhook.version = 1
webhook.subscope = smart.models.WebhookSubscope({'column_ids': [smart_setup['sheet'].columns[0].id]})
action = smart.Webhooks.create_webhook(webhook)
assert action.message == 'SUCCESS'
assert isinstance(action.result, smart.models.Webhook)
TestWebhooks.webhook = action.result
请特别注意 subscope
属性 的设置方式与您在上面发布的方式不同。我建议尝试根据此代码对您的代码进行更多建模,看看您是否可以达到预期的结果。
您的代码与我的几乎完全相同,子范围也不适合我。我从 smartsheet-python-sdk pip 包 2.86 升级到 2.105,现在我的 webhook 设置正确。我还验证了 subscope 设置有效,这大大减少了我必须处理的事件数量。
这是我的代码(尽管它与您的代码基本相同)。
def createSheetWebhook(name, sheet_id, target, subscope=[]):
new_webhook = smartsheet_client.Webhooks.create_webhook(
smartsheet.models.Webhook({
"name": F"sheet changes for {name}",
"callbackUrl": target,
"scope": 'sheet',
"scopeObjectId": sheet_id,
"subscope": {
"columnIds": subscope
},
"events": ['*.*'],
"version": 1
})
)
return new_webhook.result.id