問題タブ [googlesheets4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
api - R - 非インタラクティブ セッションの googlesheets4 資格情報
携帯電話で Android アプリ R プログラミング コンパイラ ( https://play.google.com/store/apps/details?id=com.krazeapps.rprogrammingcompiler&hl=en_GB&gl=US ) を使用して動作するコードを作成しようとしています。を使用して既存の Google シート ファイルにデータ フレームを挿入しますgooglesheets4
。R プログラミング コンパイラは、対話型プログラムをサポートしないバッチ コンパイラです。RStudio を使用gs4_auth()
し、指定された事前承認済みの電子メール アドレスのリストから入力する番号を選択するだけです。次に、既存のファイルの URL を使用sheet_write()
して、データ フレームを書き込むことができます。パッケージを初めて使用したときに、さらに多くの手順を実行する必要があったかどうかは覚えていません。
このアプローチは、インタラクティブ セッションをサポートしていないため、私の電話では機能しません。gs4_auth()
とのドキュメントを調べてみましたがgs4_config_auth()
、まだプログラミングにかなり慣れていないため、API やトークンなどについて何も知らないため、ドキュメントを使用して何をすべきかわかりませんでした。gs4_deauth()
には機能しread_sheet()
ますが、には機能しませんsheet_write()
。
アプリは、コードを実行する前に入力を受け取ることができると言っていますが、その機能を正しく使用する方法や入力がどうあるべきかわかりません。再現可能なコードは含めていませんが、スケルトンバージョンは次のとおりです。
その後、アプリはこのエラーを吐き出します。
コードに追加できるもの、つまりこのコードをインタラクティブ セッションの外で実行できるものはありますか? もしそうなら、必要な情報を取得してコードに追加するにはどうすればよいですか (例: 0Auth トークン、その他の API 要件)?
r - サービス アカウントを使用した後、R googlesheets4 gs4_auth() で指定されたユーザー アカウントを使用するように強制する
私は、googlesheets4
いくつかのデータを読み取るために使用し、ガーグルを使用して API 呼び出しを認証する単純なスクリプトに取り組んでいます。gs4_auth()
が間違ったユーザーを認証するという問題が発生しています。
最初gs4_auth("example@example.com")
に Google アカウントで認証を実行すると、すべてが機能します。
その後、gargle::credentials_service_account()
ローカル サービス アカウントの json キーを使用してトークンを生成し、API 呼び出しを認証します。それもうまくいきます。
この問題は、以前に API 呼び出しを認証した後でスクリプトを再度実行しようとすると発生します。実行するgs4_auth()
と、サービス アカウントの資格情報が使用され、read_sheet()
呼び出しで 403 エラーが返されます。
gs4_auth()
サービス アカウント資格情報を使用しないように強制する方法はありますか。サービス アカウントには、渡された電子メールとは異なる電子メールがあるgs4_auth()
ため、一致しない資格情報を使用することは期待できません。
で認証を実行したoptions(options(gargle_verbosity = "debug")
ところ、次の出力が得られました。
example@example.com には Google シートへのアクセス権がありますが、example-service-account@project.iam.gserviceaccount.com にはアクセスできないため、後続の 403 エラーが発生します。