In unserer Firma haben wir eine benutzerdefinierte Issues
App erstellt. Zusätzlich zur Verwendung dieser App in der Weboberfläche möchten wir auch den Status eines Problems (neu, bestätigt, getestet, aufgelöst, ...) automatisch über Git-Commit-Hooks ändern können. Die Grundlagen funktionieren gut (dh Status ändern, Notizen hinzufügen ...), aber wir möchten auch die Verantwortung für das aktuelle Element auf einen bestimmten Benutzer ändern. In diesem speziellen Fall ist es der Ersteller dieses Elements.Abrufen der Profilid für eine Benutzer-ID
Mein erster Versuch war die folgende:
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>{creator.Value};
//change some other fields as well
podio.ItemService.UpdateItem(update);
Dies löst eine Ausnahme „Objekt nicht gefunden“, denn in der resp.ContactIds
darf man nicht die UserId
gesetzt, aber die ProfileId
.
Ich habe dann versucht über
podio.ContactService.GetUserContactField(creator.Value, "profile_id");
die ProfileId
der item-Schöpfer zu erhalten, aber dies führt auch eine Ausnahme „(Authentifizierung als App für diese Methode nicht erlaubt“).
Wie kann ich eine geeignete Profil-ID für den Benutzer erhalten, wenn ich die Authentifizierung als App verwende?
Ich weiß, dass die Person die Lösung gefunden hat. Aber nur für den Fall, dass jemand die Ausnahme "Authentifizierung als App ist für diese Methode nicht erlaubt" beim Zugriff auf "podio.ContactService.GetUserContactField (creator.Value," profile_id ");" ist, weil wir den App-authentifizierten Client nicht verwenden können, um Kontakt zu erhalten Informationen, da es nicht App-spezifisch ist. Stattdessen müssen wir den authentifizierten Client des Benutzers verwenden, damit der obige Code funktioniert. –
Nun, genau das sagt die Ausnahme. Also, was ist der Sinn Ihres Kommentars? Die Verwendung von Benutzerauthentifizierung war in meinem Fall nicht möglich, da der Aufruf Teil eines automatisierten Workflows war. – derpirscher