Перестала работать подписка на уведомления о потоковой передаче Office 365 - PullRequest
0 голосов
/ 09 сентября 2018

Мне удалось настроить уведомление о потоковой передаче электронной почты Outlook с помощью бета-API, все заработало!

Я вернулся в проект через несколько недель, и тот же код выдает ошибку invalid_token. Это код подписки.

public async Task<StreamingSubscriptionResponse> SubscribeToEventsAsync()
        {
            client = new HttpClient();
            var token = await office365Authentication.GetTokenForUserAsync();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

            string requestUrl = "https://outlook.office.com/api/beta/me/subscriptions";

            var subscriptionRequestContent = JsonConvert.SerializeObject(new SimpleStreamingEventSubscription());

            var content = new StringContent(subscriptionRequestContent, Encoding.Default, "application/json");

            var response = await client.PostAsync(requestUrl, content);

            var convertToString = response.Content.ReadAsStringAsync().Result;

            // return the object to get the SubscriptionId
            return JsonConvert.DeserializeObject<StreamingSubscriptionResponse>(convertToString);
        }

Вот так я получаю токен.

public async Task<string> GetTokenForUserAsync()
        {
            AuthenticationResult authResult;

            try
            {
                var user = IdentityClientApp.Users.First();

                authResult = await IdentityClientApp.AcquireTokenSilentAsync(_scopes, user);
                TokenForUser = authResult.AccessToken;
            }
            catch (Exception)
            {
                if (TokenForUser == null || Expiration <= DateTimeOffset.UtcNow.AddMinutes(5))
                {
                    authResult = await IdentityClientApp.AcquireTokenAsync(_scopes);

                    TokenForUser = authResult.AccessToken;
                    Expiration = authResult.ExpiresOn;
                }
            }

            return TokenForUser;
        }
  • Все остальные функции графика работают нормально, например, получение электронных писем.
  • Токен действителен.

Как это можно исправить, есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...