2017-02-02 20 views
1

Я пытаюсь читать/записывать события из календаря office365 с помощью microsoftgraph api. Я не могу получить правильную область видимости, я получаю только user.read, когда мне нужен calendar.readwrite. вот мой запрос кода, я попытался добавить область, и у меня есть calendar.readwrite, определенный в разрешениях в портале регистрации, но всегда я получаю только user.read. когда я получаю токен доступа.microsoftgraph oauth2 scope

https://login.microsoftonline.com/common/oauth2/authorize? 
client_id={CLIENT_ID}& 
response_type=code& 
redirect_uri=https://localhost& 
state=985542 

Как увеличить объем моего приложения?

ответ

1

Возможно, ваше заявка находится в состоянии, когда у вас есть согласие на область действия user.read, но не область calendar.readwrite.

В частности, я предполагаю, что вы зарегистрировали свое приложение только с областью user.read, а затем согласились на это приложение. Это сработало, и ваши жетоны начали получать область user.read. Затем в более позднее время вы добавили дополнительное разрешение для calendar.readwrite, однако вы не видите его в токене!

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

Чтобы исправить это, просто добавьте &prompt=consent в конце вашего URL-адреса входа, который заставит пользователя согласиться с новым набором разрешений.

Это происходит потому, что наша служба токенов сначала проверяет, есть ли права доступа, написанные между пользователем и приложением. Если они есть, они пропустят все процессы согласия и просто перейдут к чеканке маркера. Если вы должны удалить запись согласия или заставить пользователя снова дать согласие, мы начнем процесс с нуля, что приведет к всем разрешениям, которые вы выбрали.

Дайте мне знать, если это поможет!

+0

Я попробовал добавить приглашение = согласие до конца моего логина, и он говорит: «Извините, но у нас возникли проблемы с подписанием вами, мы получили плохой запрос», но без подсказки он дает мне код – Spb2015

+0

Я начал с и создал новую регистрацию приложения, и теперь я получаю calendar.readwrite, чтобы это сработало. – Spb2015

+0

Если вы хотите отладить ошибку, не стесняйтесь скопировать URL-адрес для входа сюда. В противном случае я рад, что вы смогли решить вашу проблему –