2014-04-01 76 views
0

我試圖從Google獲取刷新令牌以訪問Google驅動器。到目前爲止,我已經設法在谷歌應用程序引擎中創建一個頁面,將頁面重定向到認證頁面,並且我可以獲取代碼。的URL地址越來越有Google Oauth2身份驗證返回「必需的參數丟失:grant_type」

Window.Location.assign("https://accounts.google.com/o/oauth2/auth?scope=profile&redirect_uri=http://127.0.0.1:8888/oauth2manager/redirect&response_type=code&client_id=1058171155388-hg2akr2idan7c2kvdam9b89vptcjai8i.apps.googleusercontent.com"); 

我然後重定向到/ oauth2manager /重定向servlet和獲得doPost方法中的代碼

String code = request.getParameter("code"); 

我的問題是,我不能經常進行,因爲我得到上面的錯誤「缺少必需的參數:grant_type」我已經嘗試restclient wiztools,RestEasy Firefox擴展甚至捲曲。 這裏是我的捲曲腳本

#!/bin/bash 
$code= "4/E7i1aKu4C-Pf23-8hY4Y8OBe9IBZ.wtKglnd8-CMdOl05ti8ZT3aNPWw7igI"; 
curl -v --data "code="+$code+"&[email protected]er.gserviceaccount.com&client_secret=JHXTAT4UWwsNaMgm******&redirect_uri= http://127.0.0.1:8888/oauth2manager/redirect&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token 

這怎麼解決?我在這是一個新手。

回答

0

我認爲你的混合Oauth類型。你使用的代碼是正常的Oauth2。但是你的客戶是一個服務帳戶。

正常Oauth2會詢問用戶是否允許您訪問他們的數據。服務帳戶允許其他人訪問應用程序的數據,但沒有服務帳戶的權限請求。

鏈接到服務帳戶的文檔。 Service account

+0

謝謝,我沒有意識到這一點。我會嘗試一下,看看它是如何發展的 – user3485417

相關問題