+++ date = "2017-04-07" tags = ["golang"] title = "medium-go" slug = "golang" +++ medium clientをgolangで書いた。 https://github.com/syui/medigo ```bash $ cd $GOPATH/bin $ curl -LO https://github.com/syui/medigo/releases/download/0.1/darwin_amd64_medigo $ mv darwin_amd64_medigo medigo $ chmod +x medigo $ export PATH=$PATH:$GOPATH/bin # 最初はOAuth認証のためブラウザが開く $ medigo $ medigo h COMMANDS: post, p carte post sub-command : draft(d), public(p) key, k token json sub-command : AccessToken(a), RefreshToken(r), SelfToken(s) user, u user info oauth, o get oauth-access-token self, s get self-access-token refresh, r refresh access-token help, h Shows a list of commands or help for one command ``` 前回は試せなかったので、設定ファイルから読み込む方法で`client_id`などを読み込むようにしてみたりとか色々。エディタとかと連携したら面白そうだけどやってない。 OAuthでの認証はBrowserでクリックしないといけないのでCLIとの相性は良くない。MediumにはSelf-access-tokenぽいものがあって、それを利用するとCLIとの相性は良さげなんだけど、これをどういう形でユーザーに取得してもらうのかという問題がある。できる限りコマンド一発で行いたいけど難しそう。 一応、OAuth認証の実現に向けて試しにコマンドオプション`o`を追加してみたけど、実際のところブラウザからcodeをコピーして貼り付けなければならないし、MediumはLocalhostの利用を許可していないので、自身のWebサイトにURLにアクセスしてもらうようにしているのだけど、これ自体が信頼に足りないものだし、リフレッシュトークン(OAuthで取得したTokenは期限切れがあるため)の処理が面倒などなどいろいろな理由から対応してない。 以上