関数にクエリを渡す必要があります。それは本当に簡単なはずです!コードは次のとおりです。
def get_file_ID(q):
dump = drive_service.files().list(q=q, fields = 'items(mimeType,id,title,downloadUrl)').execute()
fileItems = dump['items']
for item in fileItems:
try:
if item['mimeType'] == "application/octet-stream":
return item['id']
except KeyError:
print "No item of the required type, or item has been deleted"
return None
def lets_go_get(file_Id):
f = drive_service.files().get(fileId=file_Id).execute()
resp, content = drive_service._http.request(f.get('id'))
if resp.status == 200:
#print 'Status: %s' % resp
return content
else:
print 'An error occurred: %s' % resp
return None
text = raw_input('Enter title search text: ')
query = "title contains '" + text +"'"
selectedFile = "'" + get_file_ID(query) +"'"
print lets_go_get(selectedFile)
次のエラーが表示されます。
HttpError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/%270BxDfMkL6x0wjMS03Nz.....Tk%27?alt=json returned "File not found: '0BxDfMkL6x0wjMS03.....MTU5NjQ0ZjdhOTk'">
しかし、「lets_go_get」への最後の呼び出しを次のような直接のファイルIDに置き換えると:
print lets_go_get('0BxDfMkL6x0wjMS03.....MTU5NjQ0ZjdhOTk')
それは動作します。
両者の間に違いは見られません。誰かが私が欠けているものを説明できますか???
どうもありがとう。