2012-08-14 91 views
2

我想知道我應該如何提示用戶從我的應用程序登錄/連接到他們的谷歌帳戶,以便我可以使用他們的電子郵件和密碼來訪問他們的文檔/驅動器。我在我的桌面上運行了一個應用程序,該應用程序連接到Google帳戶的驅動器,並創建電子表格,並在稍後訪問該信息以獲取信息。目前我必須對電子郵件和密碼進行硬編碼。如何提示用戶將他們的Google帳戶與我的應用連接?

我聽說過gaema,但它聽起來不像是對的。此外,我不知道它是否有所作爲,但這個應用程序只在我的筆記本電腦上,而不是在Google服務器上運行。雖然它不應該......我想。

P.S.我是新的谷歌應用程序引擎和蟒蛇,甚至stackoverflow,所以請不要討厭我的noob問題:)

+0

好吧,爲什麼不只是使用經典的HTML表單來獲得用戶的這種輸入? – Paladin 2012-08-14 21:22:23

回答

2

所以AppEngine使谷歌賬戶相關的東西很容易(驚喜:))。看看這裏的文檔https://developers.google.com/appengine/docs/python/users/overview。這解釋了用戶服務,您可以請求用戶使用他們的Google憑據登錄。例如(直接從文檔):

from google.appengine.api import users 
from google.appengine.ext import webapp 

class MyHandler(webapp.RequestHandler): 
    def get(self): 
     user = users.get_current_user() 
     if user: 
      greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" % 
         (user.nickname(), users.create_logout_url("/"))) 
     else: 
      greeting = ("<a href=\"%s\">Sign in or register</a>." % 
         users.create_login_url("/")) 

     self.response.out.write("<html><body>%s</body></html>" % greeting) 

這將檢查用戶是否與他們的谷歌帳戶登錄,如果沒有會呈現一個登錄URL。做'魔術'的部分是users.create_logout_url('/')users.create_login_url('/')方法。他們創建一個鏈接到用戶可以登錄的特殊URL(無需您執行任何其他格式/編碼)。然後將它們重定向回您的網站('/'將它們發送到您的主頁面,但是您可以更改)。希望這可以幫助!

編輯: 作爲@Wooble指出,這將不授予到用戶數據的應用程序訪問 - 它只會爲你提供關於每個什麼是可通過用戶服務的用戶的一些基本信息。爲了讓您的應用訪問Google雲端硬盤數據,@SebastianKreft提供的鏈接顯示了一個可以進行身份​​驗證的示例應用程序。有關在Drive上使用OAuth的其他一般信息可在here找到。簡而言之,用戶需要爲您的應用授予權限才能訪問其數據,並通過OAuth令牌執行此操作(請參閱文檔以獲得比我所能提供的更好的解釋)。

+0

這會將用戶記錄到您的應用程序中,假設您使用用戶API進行任何操作;它不允許您訪問他們的文檔/雲端硬盤帳戶。 – geoffspear 2012-08-15 00:38:15

+0

@Wooble偉大的一點 - 錯過了他實際需要用他們的數據做某件事的問題:)現在正在修改。 – RocketDonkey 2012-08-15 00:42:37

3

詢問用戶的用戶名和密碼絕不是可接受的解決方案,我相信他們不會願意給你。相反,您需要使用某種授權流程,通常爲OAuth 2.0。

使用來自GAE的Google Drive的完整示例應用程序在this article中進行了說明。

相關問題