Как я могу получить доступ к контактам Outlook, используя Graph и Python? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь получить доступ к личным контактам, используя API Graph и Python. Я могу заставить это работать для календарей и событий, но не могу найти способ заставить его работать с контактами.

Сайт не предоставляет каких-либо решений Python для этого, за исключением некоторых устаревших руководств по Django.

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

Вот что у меня есть:

Мой код для получения контактов:

def get_contacts_personal(token):

  graph_client = OAuth2Session(token=token)
  contacts = graph_client.get('{0}/me/contacts'.format(graph_url))

  return contacts.json()

И мой код просмотра Django:

def contacts(request):

  context = initialize_context(request)
  token = get_token(request)
  contacts = get_contacts_personal(token)

  if contacts:
    context['contacts'] = contacts['value']

  return render(request, 'tutorial/contacts.html', context)

Я надеялся получить данные JSON, но вместо этого я получил ключевое слово error для значения. Если я удаляю это, я просто не получаю данных.

Я уверен, что упускаю что-то очевидное, надеюсь, кто-то может помочь!

1 Ответ

1 голос
/ 16 октября 2019

Конечная точка Список контактов описана здесь . В нем говорится, что вам потребуется делегированное (или прикладное) разрешение Contacts.Read.

. Сначала необходимо проверить свой токен (чтобы убедиться, что вы получили правильную область действия).

Скопировать токени вставьте его в JWT.ms (это веб-сайт Microsoft, в котором объясняется, что находится в токене.) Если вы нажмете вкладку претензий , вы будете искать scp претензия. Он должен содержать либо Contacts.Read, либо Contacts.ReadWrite.

Теперь у вас есть два варианта, требуемая претензия включена. Тогда нам понадобятся некоторые подробности об ошибке, которую вы получаете. Если претензия не включена, вам потребуется изменить разрешения приложения на портале Azure (в разделе Azure AD -> Регистрация приложений).

...