Получение ошибки 401 при попытке получить входящие входящие спама в Outlook, с PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Получение ошибки 401 при попытке получить входящие входящие спама в Outlook, с Python

Сообщение Anonymous »

Я пытаюсь сделать программу, чтобы помочь людям избавиться от своего спама. Есть часть моего кода, которая получает мою ошибку, с которой я не знаю, что делать. Мой сценарий Python - следующее: < /p>
import requests
import msal
import joblib

# Azure AD app info
TENANT_ID = 'ba960d84-655e-49a8-939f-aec5cf604024'
CLIENT_ID = '409fbe46-4627-459f-be95-f1fc3e4ff10f'
CLIENT_SECRET = '.AM8Q~tw8kfbHyqmXYKbgx1RuWaHKcSTt1OtvcUc'
SCOPES = [
'Mail.Read',
'Mail.ReadBasic',
'Mail.ReadWrite',
'Mail.Send',
'User-Mail.ReadWrite.All',
'User.Read']

# Laad je model
model = joblib.load('spam_detector_model.pkl')

def get_token_via_device_flow():
app = msal.PublicClientApplication(
CLIENT_ID,
authority=f'https://login.microsoftonline.com/{TENANT_ID}'
)

flow = app.initiate_device_flow(scopes=SCOPES)
if 'user_code' not in flow:
raise Exception("Fout bij het verkrijgen van device code")

print("Ga naar de volgende URL en voer de code in om te authenticeren:")
print(flow['verification_uri'])
print("Code:", flow['user_code'])
print("Wacht totdat je hebt ingelogd en toestemming gegeven...")

result = app.acquire_token_by_device_flow(flow)
if 'access_token' in result:
return result['access_token']
else:
raise Exception("Fout bij het verkrijgen van toegangstoken: " + str(result.get('error_description')))

# Rest van je code blijft hetzelfde...

def get_spam_emails(token):
headers = {'Authorization': f'Bearer {token}'}
url = 'https://graph.microsoft.com/v1.0/me/mai ... l/messages'
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json().get('value', [])

def evaluate_email(email):
data = {
'subject': email['subject'],
'body': email['body']['content'],
'from': email['from']['emailAddress']['address']
}
prediction = model.predict([data['subject'] + ' ' + data['body']])[0]
return prediction

def main():
token = get_token_via_device_flow()
print("Token verkregen, ophalen van spam-mails...")
print("Token: " + token)
emails = get_spam_emails(token)

likely_spam = []
possible_falspositives = []
ai_only_spam = []

for email in emails:
outlook_spam = True
try:
ai_spam = evaluate_email(email)
except:
continue
if outlook_spam and ai_spam:
likely_spam.append(email)
elif outlook_spam and not ai_spam:
possible_falspositives.append(email)
elif not outlook_spam and ai_spam:
ai_only_spam.append(email)

print('Waarschijnlijk echt spam (Outlook + AI):')
for e in likely_spam:
print(f'- {e["subject"]} ({e["from"]["emailAddress"]["address"]})')

print('\nOutlook spam, AI niet spam (controle):')
for e in possible_falspositives:
print(f'- {e["subject"]} ({e["from"]["emailAddress"]["address"]})')

print('\nAI spam, Outlook niet spam (controle):')
for e in ai_only_spam:
print(f'- {e["subject"]} ({e["from"]["emailAddress"]["address"]})')

if __name__ == '__main__':
main()
< /code>
Некоторый текст в коде - голландский (как и я), так что вы, возможно, захотите перевести это.Ga naar de volgende URL en voer de code in om te authenticeren:
https://microsoft.com/devicelogin
Code: LP2DUHR2B
Wacht totdat je hebt ingelogd en toestemming gegeven...
< /code>
, который является ожидаемым ответом, поэтому я вхожу в систему, используя инструкции без проблем. , но , когда я успешно вошел в систему, я получаю следующий ответ:
Token verkregen, ophalen van spam-mails...
Token: eyJ0eXAiOiJKV1QiLCJub25jZSI6IktaYldFd2R0eWE0Q3lZUEdGbkpfbXVHOFNaSklENWNQTTYzZ3JVTm94VU0iLCJhbGciOiJSUzI1NiIsIng1dCI6Il9qTndqZVNudlRUSzhYRWRyNVFVUGtCUkxMbyIsImtpZCI6Il9qTndqZVNudlRUSzhYRWRyNVFVUGtCUkxMbyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9iYTk2MGQ4NC02NTVlLTQ5YTgtOTM5Zi1hZWM1Y2Y2MDQwMjQvIiwiaWF0IjoxNzUxNTQ3ODgzLCJuYmYiOjE3NTE1NDc4ODMsImV4cCI6MTc1MTU1MjIzNCwiYWNjdCI6MCwiYWNyIjoiMSIsImFjcnMiOlsicDEiXSwiYWlvIjoiQVpRQWEvOFpBQUFBaUIwVnJ4T2NzdmQzRU9nTm1aYXJ2VTRTcHRsMnVpOXE5RUZjbloyWHFsUEdTWVRaSGxobitlT2ZmVlJRcGJGT1hvRDZXRmgrQy9Zb2pBczh2NlRGV2tRU2Jzb1NGYjNlUThXaEJCNXhKK25xZzFHV09LUElsRVpKRUFWeTVGSExqTVprWFA4WXlvWDZDSmptbmd1S0ExaDFLUDBJS2YwSTY1dENVd051YmNDdXloT1U0RXBJQ011d3UxRXUwa3kxIiwiYWx0c2VjaWQiOiIxOmxpdmUuY29tOjAwMDM3RkZFN0Y2QUM1RTQiLCJhbXIiOlsicHdkIiwibWZhIl0sImFwcF9kaXNwbGF5bmFtZSI6IlNwYW10ZXN0amUiLCJhcHBpZCI6IjQwOWZiZTQ2LTQ2MjctNDU5Zi1iZTk1LWYxZmMzZTRmZjEwZiIsImFwcGlkYWNyIjoiMCIsImVtYWlsIjoiZGVsZW5vcHNjaG9vbEBvdXRsb29rLmNvbSIsImZhbWlseV9uYW1lIjoib3Agc2Nob29sIiwiZ2l2ZW5fbmFtZSI6ImRlbGVuIiwiaWRwIjoibGl2ZS5jb20iLCJpZHR5cCI6InVzZXIiLCJpcGFkZHIiOiIzNC4xMzkuMjE5LjIzOSIsIm5hbWUiOiJkZWxlbiBvcCBzY2hvb2wiLCJvaWQiOiI1ZTRjMTIzMS1jNjU0LTQ5YjktYTlmNS1iMmJkMGZmMmEyMTAiLCJwbGF0ZiI6IjgiLCJwdWlkIjoiMTAwMzIwMDRDRkY5NUM1RSIsInJoIjoiMS5BUk1CaEEyV3VsNWxxRW1UbjY3RnoyQkFKQU1BQUFBQUFBQUF3QUFBQUFBQUFBQTZBY2NUQVEuIiwic2NwIjoiTWFpbC5SZWFkIE1haWwuUmVhZEJhc2ljIE1haWwuUmVhZFdyaXRlIE1haWwuU2VuZCBvcGVuaWQgcHJvZmlsZSBVc2VyLlJlYWQgVXNlci1NYWlsLlJlYWRXcml0ZS5BbGwgZW1haWwiLCJzaWQiOiIwMDZhZmViOS0yNDg4LTFlOTItN2ZlZi0zNzIwODhiYmVjNzIiLCJzaWduaW5fc3RhdGUiOlsia21zaSJdLCJzdWIiOiJ4TWJEeV9Ya0ZVd0toenhTU1dJTUlaVW9mNWhURWZfTllqVUo4WFdtaEdRIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6IkVVIiwidGlkIjoiYmE5NjBkODQtNjU1ZS00OWE4LTkzOWYtYWVjNWNmNjA0MDI0IiwidW5pcXVlX25hbWUiOiJsaXZlLmNvbSNkZWxlbm9wc2Nob29sQG91dGxvb2suY29tIiwidXRpIjoiT2tlbURwWk41VWFuTmN6bXQ2OWJBQSIsInZlciI6IjEuMCIsIndpZHMiOlsiNjJlOTAzOTQtNjlmNS00MjM3LTkxOTAtMDEyMTc3MTQ1ZTEwIiwiYjc5ZmJmNGQtM2VmOS00Njg5LTgxNDMtNzZiMTk0ZTg1NTA5Il0sInhtc19mdGQiOiIxUHhnZ1QySGY4RTlQbTBoRDZaQktkeGVXY2FPbWpPMXZhNHQ5d3loazNrQlpuSmhibU5sWXkxa2MyMXoiLCJ4bXNfaWRyZWwiOiIxMCAxIiwieG1zX3N0Ijp7InN1YiI6IldhVFRGV0RrQmlRekFDc3NvSDFPNzlEeld2RXN5a2FOcGhIVnZHZFlDQ2cifSwieG1zX3RjZHQiOjE3NTEzNzAxNDEsInhtc190ZGJyIjoiRVUifQ.oPgYnYK9vIwQLU2HM8pVBPnMzDCEnnFzcXUDzB9MaRDmqSbaVUv9l-bNC7n4Iwldp8O30PsD6J4_G6dbW4r5fau8uIhnUpQe-9UEiVELHSdUtJFbZlTp0LqnA9GIjMVJCWeTzjAkwUhLeu1e94CPFVzFHDbabKZio4TCt_bDgJ7MOEq5Z_4uv1HeRXT5lithB3dES2RSI-3UFD1CVSgRaySQvmhX9-oIkQ4DDU98lKl3tQFnyi-kVbsnUAOOjZ8-Ratt5v7-atQt366lRyBBRLALh-RKVjztTHnomtMkUqyGdtAK3_NwyRzKdX1-Ueaj1qRNCw0ar5dPo0hIlzNbyg
< /code>
Эта часть ожидается, но я получаю эту ошибку в конце: < /p>

Traceback (most recent call last):
File "/home/runner/workspace/main.py", line 96, in
main()
File "/home/runner/workspace/main.py", line 64, in main
emails = get_spam_emails(token)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/workspace/main.py", line 48, in get_spam_emails
response.raise_for_status()
File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/requests/models.py", line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://graph.microsoft.com/v1.0/me/mai ... l/messages

< /code>
Я все пробовал, но, кажется, ничего не работает ...
может кто -нибудь, пожалуйста, помогите? < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ith-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»