Googleスプレッドシートを作成し、すべてに編集アクセス権を付与しました(ログインしなくても編集できます)。
link です。このスプレッドシートをGoogle Spreadsheet APIで更新したいと思います。しかし、エラーが発生しています。私の要件は、アクセス資格情報がなくてもAPIを介してシートを更新することです。
OAuth
または_API Keys
_なしでスプレッドシートに書き込むことができます。 _Service Account Keys
_を使用する必要があります。
Node.js環境のために私がしたことは次のとおりです。
Furnish a new private key
_をクリックしてくださいJSON
を選択します。service account key
_には、_client_email
_。が含まれますclient_email
_にこのドキュメントへの書き込みアクセスを許可します次のコードを使用して認証します
let jwtClient = new google.auth.JWT(client_email, null, private_key, [ "https://www.googleapis.com/auth/spreadsheets", ]); //authenticate request jwtClient.authorize(function(err, tokens) { // at this point the authentication is done you can now use `jwtClient` // to read or write to the spreadsheet });
_client_email
_および_private_key
_は_service account key
_の一部です
より詳細な説明はこちらにあります。 http://isd-soft.com/tech_blog/accessing-google-apis-using-service-account-node-js/ また、すべてのクレジットはこのページに移動します。
そのようなリクエストを行う権限がある である必要があります
アプリケーションがGoogle Sheets APIに送信するリクエストはすべて、Googleに対してアプリケーションを識別する必要があります。アプリケーションを識別するには、2つの方法があります:OAuth 2.0トークン(リクエストも承認します)を使用するか、アプリケーションのAPIキーを使用します。使用するオプションを決定する方法は次のとおりです。
リクエストに承認が必要な場合(個人のプライベートデータのリクエストなど)、アプリケーションはOAuth 2.0トークンをリクエストとともに提供する必要があります。アプリケーションはAPIキーも提供できますが、リクエストが承認を必要としない場合(パブリックデータのリクエストなど)、アプリケーションはAPIキーまたはOAuth 2.0トークン、またはその両方を提供する必要があります。 —あなたにとって最も便利なオプションは何でも。
それでおしまい。バイパス認証はありません。
最終的に十分に深く掘り下げ、答えを見つけました。一般に編集可能なシートであっても、あらゆる種類の記述にはOAuthフローが必要です。