GolangでCLITwitterクライアントを作った

2020年11月29日

めちゃくちゃ簡単な物で、CLIで呟きだけできるもの
brew tap im-neko/tap
brew install im-neko/tap/cliter
でインストール出来る。
初回はPINを使ったアカウントの連携が必要

Golang,grpc,k8sに慣れたかったのと、brewでのパッケージング(?)をしたことがなかったのでやってみた

めちゃくちゃ雑な構成図

構成はこんな感じになっています
とりあえず動くようになるまでやってみて今までよりはちょっとだけ理解ができるようになったのでよかった。

ソースコードはここにまとめておいてあります
https://github.com/Im-neko/cliter

やってる時に困った所
エラー残し忘れてたので詳細不明だけど、
– なんかわからんけど繋がらん その1
A. cloudflareでプロキシしてるのが原因で、2020/10/1にbetaサポートされたから管理画面で設定しないとダメ
https://blog.cloudflare.com/announcing-grpc/

– なんかわからんけど繋がらん その2
A. serviceのport名をちゃんとprefixにプロトコル名持ってこないと良い感じにしてくれないらしい
https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/

– なんかわからんけど繋がらん その3
A. クライアントの作り方

config := &tls.Config{ 
  ServerName: "cliter.im-neko.net"
} 
conn, err := grpc.DialContext( 
  ctx, 
  "cliter.im-neko.net:443", 
  grpc.WithTransportCredentials(credentials.NewTLS(config)), 
)

これで良いのかわからん….
けど一応パケット眺めてたらTLSで通信はしてそうだったので良いと信じてる(ただ証明書の検証してるか怪しいので確認した方が良さそう)