Вопрос по service-accounts, admin, google-drive-sdk – Как получить все файлы всех пользователей, используя Google Drive API

3

Яадминистратор домена для учетной записи Google и хотел бы:Получить всех пользователей в моем домене и "для каждого" пользователь, дать другому пользователю доступ для чтения всемS файлы, Я могу получить каждого пользователя, но сейчас я не понимаю, как получить документы каждого пользователя.

#!/usr/bin/python
import gdata.docs
import gdata.docs.service
from gdata.apps import client

userNameAtGmailCom = '[email protected]'
password           = 'mypassword'
personToShareWith  = "[email protected]"
domain             = 'someplace.com'

def login(userNameAtGmailCom, password, personToShareWith, domain):
    client = gdata.apps.client.AppsClient(domain=domain)
    client.ssl = True
    client.ClientLogin(email=userNameAtGmailCom, password=password, source='apps')
    all_users = client.RetrieveAllUsers()
    for user in all_users.entry:
                user_name = user.login.user_name
                print user_name
                password = user.login.password
                print password
                clientDocs = gdata.docs.service.DocsService()
#password always returns 'none' 
#therefore I've commented out the 'bad authentication'
#that would happen if the lines below ran
                #clientDocs.ClientLogin(user_name, password)
                #documents_feed = clientDocs.GetDocumentListFeed()
                #for document_entry in documents_feed.entry:
                #print document_entry.title.text
                #scope = gdata.docs.Scope(value=personToShareWith, type='user')
                #role = gdata.docs.Role(value='reader')
                #acl_entry = gdata.docs.DocumentListAclEntry(scope=scope, role=role)
                #created_acl_entry = client.Post(acl_entry, document_entry.GetAclLink().href, converter=gdata.docs.DocumentListAclEntryFromString)

login(userNameAtGmailCom, password, personToShareWith, domain)
Кажется, вам нужно уже установить auth_token & хранить его в вашем приложении:developers.google.com/gdata/docs/auth/clientlogin jjamesjohnson

Ваш Ответ

1   ответ
3

елегирования полномочий в рамках Служб Google в пределах всего домена:

https://developers.google.com/drive/delegation

Привет, Клаудио, спасибо за твой ответ. Я отказался от делегирования диска, потому что Python можетт импорт "SignedJwtAssertionCredentials», Я постараюсь вместо этого портировать на Java и посмотреть, как это получится. user1709076
Спасибо, Клаудио, ямы также попытались выполнить clientDocs clientDocs = gdata.docs.service.DocsService () (и отредактировали мой скрипт выше, чтобы показать это), однако, 'пароль' возвращается от каждого пользователя всегданикто'следовательно, clientLogin возвращает неверную аутентификацию. идеи? user1709076
По соображениям безопасности вы можетеизвлекать пользователей пароли с использованием API. В общем, вы никогда не должны спрашивать у других пользователей их учетные данные, что вы должны сделать, документировано по ссылке в моем ответе. Claudio Cherubino
404 на сайте. Можете ли вы обновить его, пожалуйста? Alejandro93sa
Рабочая ссылка:developers.google.com/drive/v2/web/delegation Patty

Похожие вопросы