如何访问驱动器作为某些谷歌用户

时间:2013-02-18 15:51:32

标签: google-app-engine google-drive-api

我正在使用appengine(python)并尝试为特定用户管理共享的google驱动器目录。即使我以不同的用户身份登录,我的程序也可以在不进入授权页面的情况下访问驱动器。假设我登录123但我想一直访问abc的谷歌驱动器。

2 个答案:

答案 0 :(得分:1)

您可以通过Google Apps用户的域范围授权执行此操作:https://developers.google.com/drive/delegation,但域管理员必须添加您的应用以进行授权。

如果您要为市场创建一个可以避免手动设置的应用,您可以按照以下说明操作:https://developers.google.com/google-apps/marketplace/tutorial_python_gae#Integrate-OAuth

如果用户未登录您的应用程序,即使您之前已被授予访问权限,我认为您无法访问任何Google的API,至少从我对可用身份验证方法的理解来看。

答案 1 :(得分:1)

当用户将应用引擎项目服务帐户添加为共享时,您始终可以访问它,而无需OAuth2舞蹈。

您的应用引擎项目服务帐户如下所示:example@appspot.gserviceaccount.com 您可以在此处找到相关信息:https://developers.google.com/drive/service-accounts#google_app_engine_project_service_accounts

def _init_service_account(self):

    if os.environ['SERVER_SOFTWARE'].startswith('Development') :
        logging.warning('Service account not used in development')
        return None
    else :        
        SCOPE = 'https://www.googleapis.com/auth/drive'
        API_KEY = '.....'                                 # GAE
        credentials = AppAssertionCredentials(scope=SCOPE)
        logging.info('service account : ' + app_identity.get_service_account_name())
        http = credentials.authorize(httplib2.Http())
        return build('drive', 'v2', http=http, developerKey=API_KEY)