编辑:我已经想出我试图通过使用ItemId
字段(Global(中的appItemId
(应用程序本地(来更新。现在的问题是如何在不使用全局ItemId
的情况下进行更新。
我已经设置了一个脚本来验证作为应用程序。
我可以脚本获取和创建新项目,但我不能编辑或删除现有项目。从错误消息中,我可以收集到该应用程序没有修改自己的项目的权限。
如何添加这些权限?
所以,这有效:
var item = new Item();
item.Field<TextItemField>("title").Value = "blah";
podio.ItemService.AddNewItem(appId,item);
这不是:
var item = new Item { ItemId = 1 };
item.Field<TextItemField>("title").Value = "blah";
podio.ItemService.UpdateItem(item);
我找到了一种方法,首先通过appItemId
获取该项目然后对其进行更新。
var item = podio.ItemService.GetItemByAppItemId(appId, appItemId);
item.Field<TextItemField>("title").Value = "ayyyy";
podio.ItemService.UpdateItem(item);
这有效,尽管需要附加的GET
请求。
编辑:在所有情况下,以前的代码甚至都无法正常工作。所以我必须这样做:
var item = new Item { ItemId = podio.ItemService.GetItemByAppItemId(appId, appItemId).ItemId};
item.Field<TextItemField>("myval").Value = "test";
podio.ItemService.UpdateItem(item, null, null, true);
因为使用所有其他值时,某些东西会破裂。