2016-08-16 57 views
3

工作我下面從這個官方鏈接教程:https://developers.google.com/sheets/quickstart/python蟒蛇)谷歌電子表格:更新API不與403

我沒有執行「quickstart.py」來驗證。 之後,我再次運行'quickstart.py',並在本教程中看到'https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit#gid=0'的數據。

我的確改變了電子表格的ID我自己的ID,並使其通過該方法獲得從我的電子表格中的數據:service.spreadsheets().values().get().execute()

但我的目標是將數據添加到我的電子表格,所以我使用的方法「更新「如下:

rangeName = 'A2:D' 
body['range'] = rangeName 
body['majorDimension'] = 'ROWS' 
body['values'] = ['test','test','test','test'] 
result = service.spreadsheets().values().update(
    spreadsheetId=spreadsheetId, range=rangeName, body=body).execute() 
print('result:'+str(result)) 

然後,我得到了一個錯誤:

googleapiclient.errors.HttpError: https://sheets.googleapis.com/v4/spreadsheets/MY_SPREADSHEET_ID/values/A2%3AD?alt=json returned "Request had insufficient authentication scopes.">

我不知道爲什麼會這樣erorr當試圖更新我的表,爲什麼這個錯誤發生當試圖從我的表中獲取數據時不會發生(如果它是由身份驗證引起的,方法'get'也應該導致它!)

謝謝。

+0

請請參閱[此鏈接](http://stackoverflow.com/questions/35846446/google-cloud-vision-api-request-had-insufficient-authentication-scopes/36059258) – Eugene

+0

@Eugene感謝您的鏈接,但當然,我已經發現該帖子,它不是'gcloud',而是'python – LKM

回答

4

的quickstart.py範圍例如設置爲:

https://www.googleapis.com/auth/spreadsheets.readonly 

要更新您需要將範圍設置爲電子表格:

https://www.googleapis.com/auth/spreadsheets 

您可以通過先刪除現有的認證做文件放入〜/ .credentials(即樹莓中的位置)。當你刪除它,你將需要重新進行身份驗證,這應該自動發生,當你重新運行腳本,它可能會被稱爲「sheets.googleapis.com的Python-quickstart.json。

+0

'與google.com的電子表格api'具有與@LKM完全相同的麻煩,但是如果我刪除.credentials中的json,並嘗試執行相同的腳本, NameError:全局名稱'CLIENT_SECRET_FILE'沒有被定義',如果我像例子中那樣定義常量: SCOPES ='https://www.googleapis.com/auth/spreadsheets' CLIENT_SECRET_FILE ='client_secret.json' APPLICATION_NAME ='Google表格API Python Quickstart' 我得到了'ValueError:沒有JSON對象可以被解碼' – jjon

+0

對於像我一樣無能的人:1.轉到您的谷歌帳戶。 API管理器控制檯和「RESET SECRET」2.下載新的json 3.重新運行設置常量的腳本:SCOPES ='googleapis.com/auth/spreadsheets'; CLIENT_SECRET_FILE ='您新下載的json文件'APPLICATION_NAME ='Google Sheets API Python Quickstart'。然後,當您重新運行腳本時,流程功能將打開瀏覽器並要求登錄。登錄成功後,將在〜/ .credentials中生成一個新的「sheets.googleapis.com-python-quickstart.json」文件,您可以輕鬆前往。謝謝@Duppie。你指出我正確的方向。 – jjon