1
0
hugo/content/blog/2017-04-07-golang.md
2024-04-23 22:21:26 +09:00

45 lines
2.0 KiB
Markdown

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