簡體   English   中英

Google OAuth2.0 是否支持 grant_type=password?

[英]Does Google OAuth2.0 support grant_type=password?

這是我的命令

curl https://accounts.google.com/o/oauth2/token -d "client_id=111111111111%2D8pc07m34pj5eb5nid0u5n9fgs5vrndpm%2Eapps%2Egoogleusercontent%2Ecom&grant_type=password&username=123456%2E123%40gmail%2Ecom&password=123456&scope=https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fcalendar&redirect_url=https%3A%2F%2Fwww%2Egoogle%2Ecom"

但我不斷得到:

{
  "error" : "invalid_request"
}

我正在嘗試編寫一個應用程序,它可以讀取命令行中指定的任何 gmail 帳戶的日歷數據:

./foo gmailID@gmail.com password

但我不知道我的 foo 如何使用 gmailID 和密碼來獲取沒有用戶交互的令牌(即,打開 url 並單擊“接受”),因此我可以使用令牌調用 Google 日歷 API 來讀取日歷數據那個 Gmail 帳戶。 我是新來的。 我至少在正確的軌道上嗎?

您不能在grant_type上發送郵件和密碼,也不能在未經用戶許可的情況下代表用戶提出請求,需要征得他們的同意。

如果您想代表用戶發出請求(當他們不在您的應用程序中時),您需要實現離線訪問。 我建議你看看這個參考

一旦用戶接受了使用您的應用程序的權限,Google 將生成一個您需要將其存儲在您的數據庫中的 refreshToken。 使用該 refreshToken,您將能夠生成新的訪問令牌,並且您將使用這些令牌來執行您的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM