0

我正在使用 appengine(python)并尝试为某些用户管理共享的 google 驱动器目录。即使我以其他用户身份登录,我的程序是否可以始终访问驱动器而无需访问授权页面。假设我登录 123,但我想一直访问 abc 的谷歌驱动器。

4

2 回答 2

1

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

如果您想为市场创建一个无需手动设置的应用程序,您可以按照此处的说明进行操作:https ://developers.google.com/google-apps/marketplace/tutorial_python_gae#Integrate-OAuth

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

于 2013-02-18T16:06:13.830 回答
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) 
于 2013-02-18T21:26:00.860 回答