LoginSignup
2
1

More than 5 years have passed since last update.

コマンドラインで medium.com に投稿できるツールを作りました #golang #medium

Posted at

リポジトリ

使い方

3つのサブコマンドがあります

  • init
  • create DIR
  • push DIR

init

名前通りイニシャライズするためのコマンドです
ホームディレクトリに medium.toml というファイルを作成します。
作られたら user.token に自分の Integration Token を書き込んでください。
このトークンは https://medium.com/me/settings の Integration Token の項目で取得できます。
workspace が init を叩いた時のカレントディレクトリになっているので、気になる人は編集してください。このディレクトリを基準にして次のコマンドは動作します。
ここを git 管理しておくと都合がいいのではないでしょうか

create DIR

workspace に指定されたディレクトリの中に DIR で指定された名前のディレクトリを新規に作成します。
その中に info.toml と content.md を作成します。
info.toml にはタイトルとか諸々設定してください
初期には書いてないけど、Licenseとかも設定できます。
分けた理由は 文章を書く markdown ファイルに余計な情報をもたせたくなかったから。
もしかしたら以下の書式のほうが良かったかもしれないけど、パースするのが大変になりそうだし、別ファイルに分けたほうが色々見やすくていいと思ってます。

title = hoge
tags = [aa, bb, cc]
---
# header
...

push DIR

DIR で取った名前のディレクトリの中の内容で medium に投稿します。
一応投稿する前に必要なものはチェックするけど、値が入っているかくらいしか見てないのでもう少しちゃんとチェックしないとなーとは思っています。
CreatePost API を叩く前に token からわかるユーザ情報を取得する API を叩いているんですが、毎回叩くのは効率が悪くてやめたいですね。
初回に叩いた時の情報を init で作成したファイルに書き込んでおけばいい気がしています。
投稿に成功すると最後に URL が出るようにしてあるのでコピーしてアクセスして下さい。

動機

もう少し長い文章を書こうと思ってサービスを色々探していたところ medium は良さげなサービスだなと思って登録してみました。
けどいかんせんブラウザで Markdown を使って書く方法がわからなかったので長い文章は書きづらいなーって思って放置していました。
ただ最近長い文章を書きたいことが増えてきたので思い切って自分好みのツールを作るようにしました。

medium API への文句

  • username と userID が違うの割りと厳しいですね。
    • medium には以下の3つのユーザを表す情報があってもう少し楽に投げたい
      • userID => ハッシュっぽい真にユーザを特定するためのもの。変更不可、ブラウザからは調べる方法がない
      • username => knsh14 のようなメンションを飛ばしたりするような場合に使われる感じのユーザ名。他のユーザとかぶらなければ変更可
      • user => kenshi kamata のような名前 変更可、かぶってもOK
  • integration token だけで動作するようにできたのは楽だった
    • ただこれで使えるAPIが少なすぎてちょっと厳しい
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1