Google Drive Service Account - view files from another account
One option is to Perform Google Apps Domain-Wide Delegation of Authority: https://developers.google.com/drive/web/delegation
You just need to share the file with the desired users with:
https://developers.google.com/drive/v2/reference/permissions/insert
Jay is spot on. Check out API v3 permission guide and reference. My other advice would be to first create a folder and set its permissions which are then inherited by any child files, e.g. in Python (sorry, don't know PHP!):
# Folder setup
folder_metadata = {
'name': 'Searchable folder name',
'mimeType': 'application/vnd.google-apps.folder'
}
folder = drive_service.files().create(
body=folder_metadata,
).execute()
domain_permission = {
'type': 'domain',
'role': 'reader',
'domain': 'example.com',
'allowFileDiscovery': True, # so they show up in user searches
}
drive_service.permissions().create(
fileId=folder['id'],
body=domain_permission,
).execute()
# New files
body = {
'name': 'Searchable filename',
'parents': [folder['id']],
}
drive_service.files().create(
media_body=...,
body=body,
).execute()