获取用户标识的profileid

时间:2016-06-24 12:00:37

标签: c# podio

在我们公司,我们创建了一个自定义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?

1 个答案:

答案 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负责查找。