在我们公司,我们创建了一个自定义resp.ContactIds
应用。除了在Web界面中使用此应用程序之外,我们还希望能够通过git commit hooks自动更改问题的状态(新的,已确认的,测试的,已解决的...)。基本工作正常(即更改状态,添加注释,......),但我们还希望将当前项目的责任更改为特定用户。在这种特殊情况下,它是该项目的创建者。
我的第一次尝试如下:
UserId
这会抛出一个"未找到的对象"例外情况,因为在ProfileId
中,不能设置ProfileId
而是设置podio.ContactService.GetUserContactField(creator.Value, "profile_id");
。
然后我尝试通过
获取item-creator的if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.BLUE);
}
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:statusBarColor">@color/color_primary</item>
</style>
</resources>
但这也会引发异常&#34;(此方法不允许以app身份验证&#34;)。
那么当我使用身份验证作为应用程序时,如何为用户获取适当的配置文件ID?
答案 0 :(得分:1)
好的,我找到了一个解决方法,不确定,如果其他方案可以实现,但它适用于当前的情况。
我没有使用C#接口为ContactIds
设置ContactItemField
,而是直接设置了json值。
var appid = 1234; var itemid = 1;
var item = podio.ItemService.GetItemByAppItemId(appid, itemid);
var update = new Item {ItemId = item.ItemId};
var creator = item.CreatedBy.Id;
var resp = update.Field<ContactItemField>("responsibility");
resp.ContactIds = new List<int>(); // set to an empty list, so that resp.Values is initialized to an empty JArray
var u = new JObject { {"value", new JObject { {"type" , "user" }, {"id", creator } } } };
responsibleField.Values.Add(u); //add the new user to the Values of the field
//change some other fields as well
podio.ItemService.UpdateItem(update);
如果我使用value
类型设置user
,我可以使用已知的userid
,服务器上的API负责查找。