Я пытаюсь добавить расширения к контактам с помощью Microsoft Graph, но получаю 500 ошибок назад.
Я думаю, что это связано с токеном, но я просто не могу его обработать.
Я перепробовал все методы, но ни один из них не работает, я могу выбрать между 400, 405 и 500 ошибками. Я предполагаю, что я близок, как только я сталкиваюсь с ошибкой 500.
Все разрешения правильны в пределах Azure.
В заголовке я попробовал следующее для токена:
token
token['access_token']
token['id_token']
Все три возвращают ошибку 500.
Я пробовал два способа добавить расширение, глобально для всех контактов и для одного контакта.
Один контакт (Я печатаю, чтобы увидеть ошибку):
def new_field(token,field):
graph_client = OAuth2Session(token=token)
contacts = graph_client.get('{}/me/contacts/'.format(graph_url))
contacts = contacts.json()
contacts = contacts['value']
for contact in contacts:
id = contact['id']
url = '{}/me/contacts/{}/extensions'.format(graph_url,id)
payload = {
'@odata.type' : 'microsoft.graph.openTypeExtension',
field : None
}
headers = {
'Authorization': 'Bearer, {}'.format(token),
'Content-Type': 'application/json'
}
print(graph_client.post(url,data=json.dumps(payload),headers=headers))
Global:
def new_field(token,field):
graph_client = OAuth2Session(token=token)
url = '{}/me/contacts/'.format(graph_url)
payload = {
'@odata.type' : 'microsoft.graph.openTypeExtension',
field : None
}
headers = {
'Authorization': 'Bearer, {}'.format(token),
'Content-Type': 'application/json'
}
print(graph_client.post(url,data=json.dumps(payload),headers=headers))
Может кто-нибудь пролить свет на это?
У Microsoft нет документациикогда дело доходит до использования графика для контактов!
************************* ОБНОВЛЕНИЕ ***************************
Теперь я могу получить 201 созданный ответ!
Однако, похоже, он ничего не создает. ... есть ли задержка ?? Я также могу заставить это работать только по контактам, а не по всему миру.
вот код, который у меня сейчас есть:
def new_field(token,field):
graph_client = OAuth2Session(token=token)
contacts = graph_client.get('{}/me/contacts/'.format(graph_url))
contacts = contacts.json()
contacts = contacts['value']
for contact in contacts:
id = contact['id']
url = '{}/me/contacts/{}/extensions/'.format(graph_url,id)
payload = {
'@odata.type' : 'microsoft.graph.openTypeExtension',
'extensionName' : field,
'value' : 'hello'
}
headers = {
'authorization': 'bearer {}'.format(token),
'Content-Type': 'application/json'
}
print(graph_client.post(url,data=json.dumps(payload),headers=headers))