非エンジニアがGoogle スプレッドシートにOAuth認証してRubyでアクセスしてみた

API プロジェクト作成

こんにちは!ハゲてますよー!(@hagetemasu7)

結果うまくいかなったんですけど、4時間の努力を共有したいので、共有します。
何がしたかったかというとですね、黒い画面(itermやターミナルのこと)でgoogle スプレッドシートにアクセスして、入力できるようにしたかったんですよ。そうすると、自動でプログラム組んで、スプレッドシートに書き込めるなーと思いまして。まあ、Google apps scriptでどうにかできたのかもしませんが・・・・

では、奮闘ぶりをみてください。

Google Drive API取得

google API

google API

メグロマンドットコムさんの記事通りにGoogle Drive APIの取得を進めました。

まあ、スクリーンショットもメグロマンドットコムさんと似たり寄ったりなんですが、一応スクリーンショットも撮ったので、載せます。

 API プロジェクト作成

API プロジェクト作成

まず、プロジェクトを作成します。まず、プロジェクトっていうのが非エンジニアからすると、よくわからないんですが、まあ、そこはツッコんでると、日が暮れちゃうので、淡々と進めます。

APIプロジェクト画面

APIプロジェクト画面

まあ、適当にプロジェクト名を入れてください。地名もまあ、en-usでいいんじゃないでしょうか。

API右上の画面

API右上の画面

プロジェクト作成をすると、なんか右上の通知のボタンがぐるぐる回り出すので、待ちましょう。

Google API パート2

Google API パート2

ぐるぐるが終わったら、左上のプロジェクトで今、作ったプロジェクトを押して、次にGoogle drive APIのボタンをポチ。

Google drive API

Google drive API

ようわからんことがたくさん書いてますが、とりあえず、有効にしましょう。

プロジェクト有効化

プロジェクト有効化

また、ようわからんですが、とりあえず、認証情報に進んだら勝ちです。

OAuth認証 google drive

OAuth認証 google drive

ここは適当じゃダメです。OAuth クライアントIDを取得してください。

?

なんだっけ?この画面???????????????まあ、同意画面を設定に進んだら勝ちです。

OAuth認証画面

OAuth認証画面

ここはサービス名だけ適当に入れればOKです。

ここまでいくと、Google Drive APIが取得できて、「cliant_secret・・・・・」なんちゃらというjsonファイルが手に入れられます。これをダウンロードして、テキストエディタ(メモ帳とか)で開くと、API連携するのに大事なID等が入ったテキストを見ることができます。

refresh token取得とRubyでアクセス

ここからはだいぶ専門的な内容になるので、メグロマンドットコムさんの記事をみてください(他人任せ)

「リフレッシュ・トークン(refresh token)を取得する」というとこと、「RubyスクリプトからGoogle Sheetsにアクセスする」というとこですね。

refresh token

refresh token

ちなみに、refresh tokenが取得できると、一番の下の文言が表示されます。エラー出しまくったな・・・

というか、記事書くの疲れたな・・・この後rubyでプログラム作って、黒い画面(Iterm)でアクセスしたんですが、エラーの嵐・・・・・結局うまくいかず・・・・あと一歩だったのに・・・・

gem google drive

gem google drive

まず、google_driveというライブラリをインストールして

あ・・・もはや疲れすぎて、エラーのスクリーンショット撮り忘れてるわ。非エンジニアであれば、エラーに悩まされること必至なので、どんなエラーが起きるか見せたかったのですが・・・すいません、疲れすぎて、撮り忘れました。

ちなみに、rubyでプログラム組んで、エラーばっかりでたら、Rubyでのハマりポイントというキータの記事を読んでみてください。エラーの原因と対策がわかりやすく書いてあります。

さいごに

全然まとまってないんですけどね、まあ、4時間ぐらいかかったので、一応アップしました。
あと一歩なので、なんとかしたいですね。


スポンサードリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">