J'ai créé un projet webhook avec Microsoft Graph API pour surveiller la boîte de réception Office 365.Mise à jour automatique de l'abonnement API Microsoft Graph
J'ai fait une méthode d'action UpdateSubscription qu'elle renouvelle pendant 3 jours seulement en fonction de la documentation fournissent sur https://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/subscription
est Ci-dessous l'extrait de code de la façon dont I'am faciliter la requête HTTP de mettre à jour l'abonnement
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)
};
Y at-il un moyen de mettre à jour automatiquement sans que l'utilisateur appuie sur le bouton pour «mettre à jour»?
car les en-têtes d'autorisation requièrent AuthResult.accessToken, ce qui nécessite que l'utilisateur se connecte au compte Office365.
S'il vous plaît conseiller
J'ai pu mettre à jour l'abonnement de l'utilisateur en récupérant le 'RefreshToken' du HttpRuntimeCache qui est utilisé pour obtenir le jeton d'accès en utilisant la méthode suivante GetAccessTokenFromRefreshTokenAsync. Cependant, lors d'un redémarrage de l'application, le cache n'aura pas le 'RefreshToken'. Est-il sûr de stocker cela dans une base de données –