Ich habe Webhook-Projekt mit Microsoft Graph API erstellt, um Office 365-Posteingang zu überwachen.Automatisches Update für Microsoft Graph API-Abonnement
ich eine UpdateSubscription Aktionsmethode hergestellt, die als entsprechend der Dokumentation nur für 3 Tage erneuert bieten auf https://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/subscription
Unter dem Code-Snippet ist, wie Ich bin die HTTP-Anforderung erleichtern das Abonnement
zu aktualisieren AuthenticationResult authResult = await AuthHelper.GetAccessTokenAsync();
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Build the request.
string subscriptionsEndpoint = "https://graph.microsoft.com/v1.0/subscriptions/"+id;
var method = new HttpMethod("PATCH");
HttpRequestMessage request = new HttpRequestMessage(method, subscriptionsEndpoint);
//get the current time
var subscription = new Subscription
{
//Id = id,
ExpirationDateTime = DateTime.UtcNow + new TimeSpan(0, 0, 4230, 0)
};
Gibt es eine Möglichkeit, automatisch zu aktualisieren, ohne dass der Benutzer die Taste zum "Aktualisieren" drückt?
Da die Authorization-Header AuthResult.accessToken erfordern, muss der Benutzer sich im Office365-Konto anmelden.
Bitte Rat
Ich konnte die Subskription des Benutzers aktualisieren, indem ich das 'RefreshToken' von dem HttpRuntimeCache abruft, das verwandt wird, um das Zugriffstoken zu erhalten, das die folgende Methode verwendet GetAccessTokenFromRefreshTokenAsync. Beim Ausführen eines App-Neustarts hat der Cache jedoch nicht den 'RefreshToken'. Ist es sicher, dies in einer Datenbank zu speichern? –