2013-01-17 75 views
0

我正在開發AppEngine應用程序,該應用程序使用Google Drive API列出來自我的Google雲端硬盤的文件。當我的其中一位用戶嘗試運行我的應用時,我收到500錯誤:訪問Google Drive API時出現「憑據無效」

HttpError:https://www.googleapis.com/drive/v2/files?q=%27[ID消毒]%27 + in + parents & alt = json & maxResults = 5返回「Invalid Credentials」>

該代碼從特定的谷歌驅動器文件夾中提取文件。該文件夾和文件與用戶共享,並且該應用有權使用Google Drive API。

在某些時候,我想我應該從頭開始,所以我撤銷了該用戶帳戶的授權。似乎沒有什麼區別,現在爲傷害增加侮辱,似乎我的應用程序不再要求特定用戶進行授權。

現在有人有什麼建議嗎?我的代碼使用谷歌API客戶端Python和處理授權裝修(帶oauth_required):

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 'client_secrets.json') 

MISSING_CLIENT_SECRETS_MESSAGE = """ 
<h1>Warning: Please configure OAuth 2.0</h1> 
<p> 
To make this sample run you will need to populate the client_secrets.json file 
found at: 
</p> 
<p> 
<code>%s</code>. 
</p> 
<p>with information found on the <a 
href="https://code.google.com/apis/console">APIs Console</a>. 
</p> 
""" % CLIENT_SECRETS 

http = httplib2.Http(memcache) 

service = build("plus", "v1", http=http) 
files_service = build("drive", "v2", http=http) 

decorator = oauth2decorator_from_clientsecrets(
    CLIENT_SECRETS, 
    scope='https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/drive.readonly', 
    message=MISSING_CLIENT_SECRETS_MESSAGE) 

[...] 

class MainPage(webapp2.RequestHandler): 

    @decorator.oauth_required 
    def get(self): 

[...] 

     try: 
      kb_param = {} 
      kb_param["maxResults"] = 5 
      kb_param["q"] = "'[sanitized]' in parents" 
      kb_files = files_service.files().list(**kb_param).execute(http=http) 

      template_values = { 
       'kb_files': kb_files["items"] 
      } 

任何有識之士將不勝感激:)

謝謝! Rick。

回答

0

令牌可能被吊銷,或者憑據可能實際上是錯誤的。