現在、python=を介してgoogleシートを更新しようとしていますが、権限に関する問題が発生しています。
このTwilioガイドの指示に従いました: https://www.twilio.com/blog/2017/02/an-easy-way-to-read-and-write-to-a- google-spreadsheet-in-python.html
私はこれをすべてJupyterで行っており、JSONファイルを適切なコードディレクトリに保存しました。スコープ、クレジット、クライアントの定義に問題はありませんでした。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_id.json', scope)
client = gspread.authorize(creds)
sheet = client.open("MixIQ Tracker").sheet1
2つをリンクするためにすべての手順を実行しましたが、最後の行でこのAPIエラーが発生しています。
APIError: {
"error": {
"errors": [{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission: Request had insufficient authentication scopes."
}],
"code": 403,
"message": "Insufficient Permission: Request had insufficient authentication scopes."
}
}
これを解決する方法は正確にはわかりません。どんな方向でも大歓迎です!
GoogleドライブAPIエンドポイントをスコープに含める必要があると思います。 Mailchimp APIからGoogle Sheetにデータを書き込んでいました。
これをチェックしてください: https://www.youtube.com/watch?v=7I2s81TsCnc >それは私にとって役に立ちました。
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
google API scopes documentation を見ると、使用しているスコープURLはどこからも参照されていません。これが問題である可能性があります。スコープのURLをhttps://www.googleapis.com/auth/spreadsheets
に変更してみてください。
また、GoogleデベロッパーコンソールのプロジェクトでスプレッドシートAPIが正しく有効になっていることを確認してください。
または、スコープを処理する Sheetfuライブラリ (私は作成者です)を試すこともできます。
これをスコープとして使用します。
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
「ServiceAccountCredentials」を呼び出す前に
「console.cloud.google」のGoogle Drive APIとSheets APIを有効にする必要があります。
このスコープだけが必要です
scope = ["https://www.googleapis.com/auth/drive"]