Скрипт Powershell с использованием почтового API Office 365 больше не работает - PullRequest
0 голосов
/ 10 января 2019

У нас есть скрипт powershell, который будет захватывать вложения из общего почтового ящика в outlook office 365. Теперь, когда mail api v1 больше не поддерживает базовую аутентификацию, этот скрипт перестал работать прошлой ночью, и теперь мне нужно использовать oAuth?

Я буду честен и не имею ни малейшего понятия, как сделать этот переход, и несколько раз прочитал документацию, но я думаю, что сейчас я более потерян. Из всего, что я продолжаю читать, говорится, что мне нужно создать приложение сейчас, зарегистрировать приложение и затем сгенерировать токен на предъявителя или токен доступа через конечную точку, которая попадает в это приложение? Это правда, мне действительно нужно все это делать?

Нет ли места, где я мог бы просто сгенерировать токен API с учетной записью Microsoft?

По сути, мы использовали скрипт: https://gallery.technet.microsoft.com/office/O365-Email-Attachments-to-6a45e84c

1 Ответ

0 голосов
/ 16 января 2019

Мы в такой же ситуации. Вероятно, из-за отключения REST Api outlook.office365.com и того, что теперь Graph API по умолчанию используется по умолчанию: Как получить содержимое itemAttachment через Microsoft Graph API https://docs.microsoft.com/nl-be/graph/api/attachment-get?view=graph-rest-1.0#request-2

Теперь я собрал скрипт, чтобы сделать это правильно, и он работает. Но (1) требуется ввод пароля GUI каждый раз при запуске скрипта (например, после сбоя питания) и после входа в систему (2) токен доступа продолжает истекать ...

Invoke-RestMethod : {
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token has expired.",
    "innerError": {
      "request-id": "1c991403-ab46-4aec-a7a1-316dbdfb4eb8",
      "date": "2019-01-16T12:29:50"
    }
  }
}

Теперь, когда вы зайдете в документацию и начнете читать такие вещи, как обновление токена и тому подобное ... Это просто чокнутый! https://docs.microsoft.com/nl-be/graph/auth-v2-user

Я разработал интерфейс API для MailChimp, который я выполнил менее чем за ОДИН час ... (1) Создать ключ API в MailChimp, (2) использовать этот ключ API в ваших сценариях и при необходимости (3) отозвать ключ в MailChimp в чрезвычайная ситуация (СОВЕРШЕНО).

Этот токен M $ BS действительно сногсшибателен. Насколько я понимаю, вам нужно либо использовать инструмент PowerShell для администратора, чтобы изменить токены на длительность по умолчанию 90 дней (но, как я понимаю, для всего сервера, а не для всего приложения?), Или автоматически обновлять токен доступа каждые 5 минут в вашем сценарии.

Вот почему я сейчас изучаю использование PSMSGraph, которое, очевидно, делает все это для вас: https://psmsgraph.readthedocs.io/en/latest/

Если вы хотите, чтобы он работал должным образом, прежде чем я это сделаю, пожалуйста, поделитесь своим кодом. Поскольку мое текущее решение требует ручного ввода пароля (который я не вижу, как я мог бы сделать это без головы, кстати) и перестает работать через час, из-за истекающего токена.

Я уверен, что есть веская (безопасная) причина иметь этот способ доступа с токеном доступа, но если способ MailChimp генерировать пожизненные токены ПРОСТО РАБОТАЕТ ... Чем я не понимаю, почему эта сложность маркера доступа имеет значение с Microsoft Graph API требуется в первую очередь.

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