У меня достаточно простая задача. Мне нужно иметь возможность создавать черновики сообщений в моей учетной записи Outlook из Python. Я понимаю, что это влечет за собой регистрацию приложения в Azure Active Directory и установку соответствующих разрешений — что я и сделал. Моя проблема заключается в входе в систему с Python - я не могу понять, как это сделать. Я знаю, что есть примеры сценариев для различных способов сделать это, но они мне не помогли. Мне не нужны какие-либо сложные веб-страницы, созданные с помощью Flask, мне просто нужно войти в систему и сделать простой вызов графического API.
Если бы вы могли показать простой пример входа в систему из Python, я был бы очень признателен.
Спасибо!
Если вы ищете простую демонстрацию создания черновика письма для определенного пользователя Azure AD, попробуйте следующий код:
import adal
import json
import requests
tenant = '<your tenant name or id>'
app_id = '<your azure ad app id>'
app_password = '<your azure ad app secret>'
userAccount = '<user account you want to create mail draft>'
resource_URL ='https://graph.microsoft.com'
authority_url = 'https://login.microsoftonline.com/%s'%(tenant)
context = adal.AuthenticationContext(authority_url)
token = context.acquire_token_with_client_credentials(
resource_URL,
app_id,
app_password)
request_headers = {'Authorization': 'bearer %s'%(token['accessToken'])}
create_message_URL =resource_URL + '/v1.0/users/%s/messages'%(userAccount)
message_obj = {
"subject":"Did you see last night's game?",
"importance":"Low",
"body":{
"contentType":"HTML",
"content":"They were <b>awesome</b>!"
},
"toRecipients":[
{
"emailAddress":{
"address":"[email protected]"
}
}
]
}
result = requests.post(create_message_URL, json = message_obj,headers = request_headers)
print(result.text)
Результат:
Примечание. Убедитесь, что вашему приложению Azure AD предоставлено разрешение приложения Mail.ReadWrite
.
Дайте мне знать, если у вас возникнут дополнительные вопросы.
Вы можете начать с этого примера, в котором используется поток кода устройства.