http://d.hatena.ne.jp/taknb2nch/20140225/1393314429
2014/02/23に開催された「Golang Cafe #18」についてのまとめです。
今回はいつもとは少し違ってgoauth2を使ってGoogleのCalendar APIとDrive APIを試してみました。とはいうものの、メインはgoauth2でGoogleのOAuth2認証が出来るかどうか試してみることでした。
+TakashiYokoyama氏が準備してくれたサンプルはgoauth2sampleになります。私のサンプルは後ほどのエントリーでまとめます。
GoogleAPIの利用準備
Google Developers Consoleにアクセスします。
「Account settings」でLanguageとFormatを変更しおきます。
「Project」の「Create Project」で適当なプロジェクトを作成します。
プロジェクト名は適当で構いません。
作成したプロジェクトの画面で「APIs」を選択し、APIのステータスを切り替えます。ボタンをクリックしてもすぐには切り替わらない時があるので焦ってはいけません。
プロジェクトの画面で「Credentials」を選択し、「CREATE NEW CLIENT ID」ボタンを押します。
Installed applicationとOtherを選択して、「Create Client ID」をクリックします。
goauth2パッケージの準備
今回はOAuth2認証を行うためにgoauth2パッケージを使用します。
サンプル検証
今回はOAuth2を試すのがメインでGoogleAPIの使用はおまけなので、GoogleAPIの使用方法については言及しません。したがってcalendarsampleの認証部分の説明に留めます。
以下のコードはgetcalendarlist.goからの抜粋です。
まずは認証を行うためにoauth.Configを作ります。
ClientId、ClientSecret、RedirectURLは上で作成したものを使用します。このサンプルではauthがこれらの値の画面からの入力、jsonへの保存、復元を行っています。
Scope、AuthURL、TokenURLはそれぞれ必要なものを設定します。
TokenCacheには認証済みの情報を保存するファイルを指定します。goauth2パッケージは一度認証が成功するとその情報を保存しておいて、毎回認証する手間を省いてくれます。
次に作成した設定情報を元にTransportを作成します。
Transportは認証を行い、認証済のhttp.Clientを提供します。
表示されたコードをコピーします。
以上のような流れで非常に簡単にOAuth2認証を行うことができました。
同じようなことができないかと+TakashiYokoyama氏と頑張ってみたところ、なんとか実現することができました。
こちらについては別エントリーにまとめたいと思います。
appcfg.pyはPythonで書かれているのでPythonistaのRyujiIwata氏に解読してもらおうかと思いましたが、本日は残念ながらお仕事で欠席でした。
次回について
次回のGolang Cafe #19はTwelve Go Best Practicesを読む事になりました。
0 件のコメント:
コメントを投稿