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