Я пытаюсь получить URL ссылки на файл, используя "get".Веб-версия API возвращает все атрибуты или «ключи».Однако, когда я пытаюсь получить к нему доступ через код Python, он возвращает только ограниченное количество ключей, таких как «mimetype», но без информации URL.Я думаю, что соответствующие "Области" включены, и файл авторизации "token.json" является текущим, но код выдает "keyError", когда выполняется запрос к целевому файлу.Ниже приведен ответ при запуске кода.Он находит файл, но сообщается только об ограниченном количестве ключей следующим образом:
{u'mimeType': u'image/gif', u'kind': u'drive#file', u'id': u'0B3rj986AqarFMHBWNng1T043WkE', u'name': u'sketchImage.gif'}
Traceback (most recent call last):
File "C:/Python27/stackQuestion.py", line 35, in <module>
main()
File "C:/Python27/stackQuestion.py", line 33, in main
print(myFile['alternateLink'])
KeyError: 'alternateLink'
Код
from __future__ import print_function
import datetime
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
SCOPES = [
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/drive.appdata',
'https://www.googleapis.com/auth/drive.file',
'https://www.googleapis.com/auth/drive.metadata',
'https://www.googleapis.com/auth/drive.metadata.readonly',
'https://www.googleapis.com/auth/drive.photos.readonly',
'https://www.googleapis.com/auth/drive.readonly'
]
def main():
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
creds = tools.run_flow(flow, store)
# Build Drive Service Instances
serviceF = build('drive', 'v3', http=creds.authorize(Http()))
#Locate the file by "fileID"
myFile= serviceF.files().get(fileId=u'0B3rj986AqarFMHBWNng1T043WkE').execute()
print(myFile)
print(myFile['alternateLink']) # <===== My Difficulty
if __name__ == '__main__':
main()