2014-02-06 52 views
0

我遇到Oauth2授權問題。 我正在使用google-api-php-client與G +服務器進行通信。初始URL似乎可以(由setAccessType('offline')由lib生成)。但每次用戶連接Google時都不會詢問離線訪問。當然,稍後一些令牌會過期。無法請求Google Plus API的離線訪問

這裏是

https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2Fwebaserver.com%2Fapp_dev.php%2Fsocial%2Fgoogle%2Fcallback&client_id=271195014651.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&access_type=offline&approval_prompt=force&state=319d6021eeec33122901e36e7ce9149d

我是忘了一些重要的細節生成的URL的例子嗎?

回答

1

您接受了G + API的ToS嗎?如果沒有,那可能就是爲什麼你的應用程序被禁止了。訪問項目控制檯並查找API選項卡。

參數的更多細節:

  • 如果包括「approval_prompt =力」,你會提示用戶重新授權時間。除非出於特定的原因(例如,在數據庫損壞事件中丟失了refresh_tokens),否則應該刪除它。
  • 如果您包含access_type = offline,則只要用戶看到同意頁面,就會獲得一個refresh_token。您應該存儲它,並在初始access_token過期後重新使用它。
1

access_type=offline用戶第一次授權應用程序?我猜不是。

即使您使用approval_prompt=force,或者在稍後的某個時間將access_type更改爲脫機,系統也只會發送刷新令牌第一個請求授權。

將鼠標懸停在應用程序上,然後單擊出現的鉛筆,即可轉到Manage Apps頁面和Edit App頁面。然後,您可以選擇Disconnect,認證系統會將未來的登錄視爲您第一次再次嚮應用程序進行身份驗證。您應該使用此係統而不是approval_prompt=force來測試首次用戶體驗。

+0

是的,這是我的第一個建議,但每次我測試它之前應用程序訪問都會被吊銷。 – Andrew