Я получаю неполный вывод из API Graph - PullRequest
2 голосов
/ 22 апреля 2019

Я пишу интеграцию слабых команд.Суть в том, чтобы определить наши сдвиги в командах MS и изменить описания некоторых каналов Slack в зависимости от того, кто находится на Shift.

В любом случае, конец Slack все готов, но у меня многопроблем с командами и их API.

Прежде всего, это мой основной ресурс: https://docs.microsoft.com/en-us/graph/api/schedule-list-shifts?view=graph-rest-beta

Хорошо, вот что я уже сделал.

  • Я зарегистрировал своего бота в Azure, и у меня есть идентификатор
  • Я дал боту необходимые разрешения
  • Я нашел идентификатор группы команд для нашегоshifts

И вот как процесс выполняется вручную:

  1. Перейдите по URL, который даст мне мой код.Я прикрепил картинку вместо большого беспорядка URL List item

  2. Когда я перехожу по этому URL (не используя Python), я попадаю на страницу, котораязаставляет меня подтвердить мой пользователь O365.(Когда Python пытается это сделать, он запрашивает полный вход в систему)

  3. Затем я получаю этот код и отправляю его в POST-запросе с помощью Postman, чтобы получить мой токен доступа:

enter image description here

Затем я использую этот токен доступа на предъявителя, чтобы вытащить смены.

Вот мои вопросы / вопросы:

  1. Когда я в конечном итоге получаю свой файл JSON со всемисмены членов команды, он показывает только смены за 1 месяц назад и раньше.Ака сегодня 22-04-2019 и последняя смена, которую я вижу, 22-03-2019.
  2. JSON также не показывает, кто находится на смене или по вызову.Я имею в виду, я вижу, что есть сдвиг, скажем, 20-02-2019, но он не возвращает никаких UID или имен для участников, которые находятся в этой смене.Есть ли способ найти это?
  3. Есть ли способ получить значение "code =" с помощью python?Он просит его войти в систему (как он просит меня подтвердить мой пользователь O365 - см. 2-е изображение).Мне действительно нужно жестко задавать свои собственные данные для входа, чтобы бот мог перейти на страницу?Это глупо имо.Я знаю, что могу прочитать перенаправленный URL, но даже не могу туда добраться.

1 Ответ

1 голос
/ 22 апреля 2019

Это только ответ на ваш третий вопрос. Я посмотрю, смогу ли я найти кого-нибудь с ответами на первые два.

API, к которому вы обращаетесь, использует делегированные разрешения, то есть вы обращаетесь от имени вошедшего в систему пользователя. Когда пользователь входит в систему, его личность проверяется, и как только это происходит, Azure AD возвращает код, который вы можете обменять на токен доступа. Следовательно, по определению невозможно получить код без входа пользователя в систему.

Существует другой вид разрешения, разрешение приложения, которое не поддерживается этим API, но если бы оно было, работало бы так, как вы хотите. Я тоже спрошу об этом.

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