Closed11
Google OAuthからGoogleドライブのスプレッドシートの読み込み
何をしたい
アプリケーションからOAuthでGoogle認証して、認証されたGoogleアカウントのGoogleドライブからスプレッドシートを読み込む
準備
- GitHub Repository
- テスト用Googleアカウント
イメージ
- 「Google認証」ボタンを押したら、Googleログインに遷移し、認可をしてから元のページにリダイレクト
- 認可後は、Googleアカウントのドライブからファイルを読み込みできるようにする
Google公式
Google ドライブだけでなく、Google Sheets APIもあった
どっちでもいいけど、なんとなくシートの方が色々めんどくさくなさそう。
共有ドライブのデータを読み込めるようにしたい。
シート以外のデータを読み込ませる場合のバリデーションとかがだるそう。
→シートだけで考える
ステップ
- Google OAuthを作る
- 上記のトークンでアクセス確認
- スプシダウンロード
メモ:共有ドライブへのアクセス
GCPのセットアップ
-
ユーザーの種類: 外部
- テストユーザーのみアプリを公開
-
APIの制限
- DriveとSheetsのAPIを追加
-
サービスアカウントで作成- OAuthクライアントで作る
クライアントセットアップ
- googleapisインストール
- Client IdとSecretを設定
callback後に、Original Locationに戻る方法は?
invalid_grantエラーが発生
{ error: 'invalid_grant', error_description: 'Bad Request' }
refresh tokenは、最初の承認のみ有効
認証されたアプリをGoogleアプリから削除して初期化
上記に合わせて、setCredentialsの記述を追加
const { tokens } = await oauth2Client.getToken(code);
oauth2Client.setCredentials(tokens);
新たなエラー発生
{
error: 'invalid_request',
error_description: 'Missing parameter: redirect_uri'
}
OAuthクライアントにredirect_uriの設定を明示
google.auth.OAuth2(clientId, clientSecret, redirectUri);
このスクラップは2024/01/24にクローズされました