国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python oauth2登錄Outlook讀取郵件

這篇具有很好參考價(jià)值的文章主要介紹了Python oauth2登錄Outlook讀取郵件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

微軟登錄方式發(fā)生了改變,需要用 oauth2 ,以前的寫的腳本都登錄不上了,本文記錄下更新后的登錄方式。
報(bào)錯(cuò)如下:
imaplib.IMAP4.error: b’LOGIN failed.’

Python oauth2登錄Outlook讀取郵件


一、先決條件

1.在Azure 門戶注冊(cè)應(yīng)用程序
這里可以跟著官方教程走
傳送門:https://learn.microsoft.com/zh-cn/azure/active-directory/develop/web-app-quickstart?pivots=devlang-python
注意 ?。。。?br> 第10點(diǎn) 重定向的地址改成:https://login.microsoftonline.com/common/oauth2/nativeclient
這個(gè)是微軟通過的地址,不要用本地的。

第13點(diǎn)注冊(cè)后 會(huì)出現(xiàn)一次的秘鑰 (value)記得保存下來。
最后加權(quán)限的時(shí)候順便加一下郵箱的權(quán)限 (搜索 mail )

Python oauth2登錄Outlook讀取郵件
順便加的郵箱權(quán)限
Python oauth2登錄Outlook讀取郵件

二、使用步驟

1.引入庫

代碼如下:

from playwright.sync_api import Playwright, sync_playwright
import  time
import urllib.parse
import requests, json

2.讀入數(shù)據(jù)

1.請(qǐng)求 authorize Api 獲取 code
Python oauth2登錄Outlook讀取郵件

代碼如下(示例):

code  = ''
userName = '郵箱賬號(hào)'
passWord = '郵箱密碼'
client_id =  '你的client_id '
tenant_id =  '你的tenant_id '
client_secret = '創(chuàng)建好應(yīng)用后創(chuàng)建的的秘鑰'
redirect_uri = 'https://login.microsoftonline.com/common/oauth2/nativeclient'

url = 'https://login.microsoftonline.com/{}/oauth2/v2.0/authorize?%20client_id={}&response_type=code%20&redirect_uri={}&response_mode=query%20&scope=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read%20&state=12345'.format(tenant_id , client_id , redirect_uri)
 

#參考資料 https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context(locale="zh-CN", accept_downloads=True)
    # Open new page
    page = context.new_page()
    page.goto(url)
    
    page.click("[placeholder=\"電子郵件、電話或\\ Skype\"]")
    
    page.fill("[placeholder=\"電子郵件、電話或\\ Skype\"]", userName)

    with page.expect_navigation():
        page.click("text=下一步")

    page.click("[placeholder=\"密碼\"]")

    page.fill("[placeholder=\"密碼\"]", passWord)

    with page.expect_navigation():
        page.click("text=登錄")

    page.click("text=否")
    
    time.sleep(3)
    global code
    query = dict(urllib.parse.parse_qsl(urllib.parse.urlsplit(page.url).query)) 
    #print('code  :', query['code'])
    #print('state  :', query['state'])
    #print('session_state  :', query['session_state'])
    code = query['code']

    
    # ---------------------
    context.close()
    browser.close()
    
with sync_playwright() as playwright:
     run(playwright)
    
print('code  :', code  )
print('-----------end code--------')
  1. 拿code換token
#get token

myobj = {'client_id': client_id,
         'code': code,
         'redirect_uri': redirect_uri,
         'grant_type': 'authorization_code',
         'client_secret': client_secret
         }

token_headers = {"Content-Type":"application/x-www-form-urlencoded"}

token_url = 'https://login.microsoftonline.com/{}/oauth2/v2.0/token'.format(tenant_id )

r = requests.post(url= token_url , headers = token_headers , data = myobj) 

access_token=json.loads(r.text).get('access_token')

print('Bearer '+access_token)
print("------access_token end------")

3.拿token請(qǐng)求api文章來源地址http://www.zghlxwxcb.cn/news/detail-444109.html

# 其他api參考:https://learn.microsoft.com/en-us/graph/api/mailfolder-list-messages?view=graph-rest-1.0&tabs=http

# 獲取郵箱文件夾找到你的收件箱id
endpoint ="https://graph.microsoft.com/v1.0/me/mailFolders"
http_headers = {'Authorization': 'Bearer ' + access_token,
                'Accept': 'application/json',
                'Content-Type': 'application/json'}
data = requests.get(endpoint, headers=http_headers, stream=False).json()
print(data)

# 獲取收件箱里面的 郵件

endpoint ="https://graph.microsoft.com/v1.0/me/mailFolders/你的收件箱文件夾id/messages"
http_headers = {'Authorization': 'Bearer ' + access_token,
                'Accept': 'application/json',
                'Content-Type': 'application/json'}
data = requests.get(endpoint, headers=http_headers, stream=False).json()
print(data)

到了這里,關(guān)于Python oauth2登錄Outlook讀取郵件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【OAuth2】OAuth2概述及使用GitHub登錄第三方網(wǎng)站

    【OAuth2】OAuth2概述及使用GitHub登錄第三方網(wǎng)站

    我們?cè)跒g覽器上可以訪問成百上千個(gè)網(wǎng)站,使用每個(gè)網(wǎng)站的服務(wù)一般都要先注冊(cè)賬號(hào),那么我們?yōu)榱烁玫赜洃?,一般都?huì)在多個(gè)網(wǎng)站使用相同的賬號(hào)和密碼進(jìn)行注冊(cè)。那么問題就來了,如果在你注冊(cè)的網(wǎng)站中有某些個(gè)網(wǎng)站的系統(tǒng)設(shè)計(jì)不夠嚴(yán)謹(jǐn)和安全,數(shù)據(jù)庫的用戶信息使用

    2024年01月19日
    瀏覽(59)
  • outlook微軟自動(dòng)給對(duì)方群發(fā)郵件消息帶彈窗!

    outlook微軟自動(dòng)給對(duì)方群發(fā)郵件消息帶彈窗!

    下載地址:outlook微軟自動(dòng)給對(duì)方群發(fā)郵件消息帶彈窗!

    2024年02月02日
    瀏覽(22)
  • 警告:新版Outlook會(huì)向微軟發(fā)送密碼、郵件和其他數(shù)據(jù)

    新的免費(fèi)Outlook會(huì)將敏感數(shù)據(jù)發(fā)送給 Microsoft。 在沒有通知或詢問的情況下,Microsoft 授予自己對(duì)新 Outlook 用戶的 IMAP 和 SMTP 訪問數(shù)據(jù)的完全訪問權(quán)限。也就是說,當(dāng)用戶設(shè)置 IMAP 帳戶時(shí),新的 Outlook 會(huì)將訪問數(shù)據(jù)和服務(wù)器信息發(fā)送給 Microsoft。只有少數(shù)用戶會(huì)意識(shí)到他們正在向

    2024年02月02日
    瀏覽(35)
  • 【OAuth2系列】Spring Cloud Gateway 作為OAuth2 Client接入第三方單點(diǎn)登錄代碼實(shí)踐

    【OAuth2系列】Spring Cloud Gateway 作為OAuth2 Client接入第三方單點(diǎn)登錄代碼實(shí)踐

    ? ? ? ? 在年初的時(shí)候我參與了一個(gè)項(xiàng)目,當(dāng)時(shí)是很多家公司協(xié)同完成這個(gè)項(xiàng)目,其中一個(gè)公司專門負(fù)責(zé)登錄這塊的內(nèi)容,需要我們的后端接入他們的單點(diǎn)登錄(OAuth2 授權(quán)碼模式),這塊接入工作是由我來負(fù)責(zé),我們的項(xiàng)目是微服務(wù)架構(gòu),經(jīng)過網(wǎng)上各種查閱資料發(fā)現(xiàn)網(wǎng)關(guān)作為

    2024年02月04日
    瀏覽(24)
  • Oauth2使用postman登錄獲取token

    Oauth2使用postman登錄獲取token

    網(wǎng)關(guān)請(qǐng)求攔截-(CheckJwtFilter.java) 網(wǎng)關(guān)配置把獲取到的token存入redis-(GatewayConfig.java)它是把我們?cè)L問網(wǎng)關(guān)的路由轉(zhuǎn)發(fā)到授權(quán)微服務(wù) 授權(quán)服務(wù)認(rèn)證配置-(AuthorizationConfig.java) 授權(quán)服務(wù)安全配置-(WebSecurityConfig.java) 授權(quán)服務(wù)登錄-(UserDetailsServiceImpl.java) 授權(quán)服務(wù)啟動(dòng)類-(AuthServerApplicatio

    2023年04月08日
    瀏覽(29)
  • SpringSecurity +oauth2獲取當(dāng)前登錄用戶(二)

    SpringSecurity +oauth2獲取當(dāng)前登錄用戶(二)

    特別注意:以下內(nèi)容如果訪問失敗或有其他疑問,可先學(xué)習(xí): SpringSecurity +oauth2+JWT實(shí)現(xiàn)統(tǒng)一授權(quán)和認(rèn)證及項(xiàng)目搭建(一) 1 獲取當(dāng)前用戶的信息代碼為: 但是,通過運(yùn)行會(huì)發(fā)現(xiàn)principal的值只是 用戶名 ,沒有用戶信息,通過去看源碼,才發(fā)現(xiàn)問題所在,以下是源碼: 源碼類:

    2023年04月12日
    瀏覽(24)
  • javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證--微軟郵箱中國(guó)版(21v世紀(jì)互聯(lián)運(yùn)營(yíng)的微軟郵箱)

    javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證--微軟郵箱中國(guó)版(21v世紀(jì)互聯(lián)運(yùn)營(yíng)的微軟郵箱)

    使用微軟國(guó)際版的看:javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證–微軟郵箱國(guó)際版 imap協(xié)議使用oauth2.0身份認(rèn)證,必須先對(duì)帳號(hào)進(jìn)行授權(quán),授權(quán)方式可以看我之前的文章:微軟郵箱oath2協(xié)議下,使用imap協(xié)議時(shí)對(duì)賬號(hào)授權(quán),如果不進(jìn)行授權(quán),即使認(rèn)證通過了,但是獲取郵件相關(guān)文件

    2024年04月12日
    瀏覽(26)
  • 如何通過OAuth2.0完成Microsoft平臺(tái)登錄驗(yàn)證

    如何通過OAuth2.0完成Microsoft平臺(tái)登錄驗(yàn)證

    參考內(nèi)容: OAuth2 in Python | TestDriven.io 代表用戶獲取訪問權(quán)限 - Microsoft Graph | Microsoft Learn OAuth 2.0 Bearer Token Usage 首先需要了解的是,通過Microsoft平臺(tái)做身份驗(yàn)證,有一些配置時(shí)拿到的參數(shù)不可或缺(在身份驗(yàn)證的步驟中會(huì)用到,不一定是同一個(gè)步驟用到),其中包括: client_id:

    2024年02月09日
    瀏覽(26)
  • Spring Security oauth2.0微信小程序登錄

    Spring Security oauth2.0微信小程序登錄

    微信小程序前期開發(fā)準(zhǔn)備,可以參考這篇文章微信小程序前期準(zhǔn)備 1、學(xué)習(xí)過Spring Secrity oauth2.0的都知道,他有四種登錄模式可以選擇 authorization code(授權(quán)碼模式) implicit(簡(jiǎn)化模式) resource owner password credentials(密碼模式) client credentials(客戶端模式) 前三種模式都需要用

    2024年02月10日
    瀏覽(22)
  • 手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    最近在學(xué)習(xí)oauth2授權(quán)登錄流程,oauth2簡(jiǎn)單來說就是接入第三方應(yīng)用(qq、微信、github、gitee等),不用在本站登錄,而是去請(qǐng)求第三方應(yīng)用的用戶信息完成登錄。 下面就一起來看一下如何接入github實(shí)現(xiàn)第三方登錄 首先,我們需要在github中添加OAuth App,登錄你的github(如果還有

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包