2017-04-07 / syui

golang

medium-go

medium clientをgolangで書いた。

https://github.com/syui/medigo

$ 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は期限切れがあるため)の処理が面倒などなどいろいろな理由から対応してない。

以上