置顶

微软邮箱Graph令牌取件源码

import requests


def get_access_token(refresh_token: str, client_id: str) -> str:
    res = requests.post(
        "https://login.microsoftonline.com/common/oauth2/v2.0/token",
        data={
            "client_id": client_id,
            "grant_type": "refresh_token",
            "refresh_token": refresh_token,
            "scope": "https://graph.microsoft.com/.default"
        }
    )
    return res.json()["access_token"]


def print_inbox(access_token: str) -> None:
    res = requests.get(
        "https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages",
        headers={"Authorization": f"Bearer {access_token}"},
    )
    res.raise_for_status()
    print(res.text)
    for m in res.json().get("value", []):
        print(f"Subject: {m.get('subject')}")
        print(f"From: {m.get('from', {}).get('emailAddress', {}).get('address')}")
        print(f"Text: {m.get('bodyPreview')}")
        # print(f"Html: {m.get('body', {}).get('content')}")
        print(f'\n{"-" * 50}\n', end='')

account = "zfmlloi5980@hotmail.com----fytTIHP7HXs4----M.C526_BAY.0.U.-CkGcNBxB4nUT*A6sP7Idf!Husr*Yv5ArQXfmyFMhpvbFpnBDeBBqomPgUw4aZ2TTolwVGfsnSqH*PS1rZsZiAXmsA2We6Q49iK8QB2bkb0uL2Z4ftaUsJTj8WLASy7kUNHq7ClQ3OWcoRTF2TMbfI8euzQLaf63zZfmntSq!dC0ru5Nar!O5OKY28FMXqkWqDqcsc4mql0v*XogAtnsOpDHgPSm7qA!P!tZ5FH2jfOH0rzMtchGDFe9qyAZ!8vlCaM8KOhi0xrAfJ5cQKAyZvNP*NDkOznC20rwZMKZHt6npn!Pj3fO1LZVeq7llBOly81QV!9i54Tez9jua41lES9EQ29NhQuendvCGHt0SWU5ORsE7AqYJcrDbn7lhDwDV7U5Kt6F4bJrl4kckJKC1lce7EgHS2pVPdhMlM8nf2W3p----8b4ba9dd-3ea5-4e5f-86f1-ddba2230dcf2"
refresh_token =account.split("----")[2]
client_id = account.split("----")[3]
access_token = get_access_token(refresh_token, client_id)
print_inbox(access_token)