ブログ記事を半自動的に生成できないかいろいろ実験してみた
この記事は https://github.com/kamonohashiK/blog_automationに上げたIssueをプログラムで拾い上げれば、それをそのままブログの下書きに使えるのではないかというアイデアのもと、試験的に書いてみたものです。
まだまだ実用レベルには至っていないとは思うものの、過去の思考の過程を追っかけるにはいいんじゃないかと思ってあえて公開してみます。
GithubのIssueからブログ記事を自動投稿できるようにする
- 自分の考えを表明するために文章を書かなきゃいけないなあと思った
- ただまとまった量の文章を書こうとすると上手くまとめきれないことが多い
毎日ネタをひねり出すのもつらい
Twitterとか断片的に情報出すのは無理なくできている
だったらいろんなサービスに断片的に書いていることを拾ってきて、それを一箇所にまとめてしまえばいいのではないか?
アウトプットしたいと思った理由:自分の人となりを知ってもらうこと
- 何をしたらそれが伝わるか?(仮説):問題意識とその解決方法を見せる
その人が何をしたい(したくない)と思っているのか、そのために何をするのかを聞くのがいいんじゃないのか
GithubのIssueってそういう機能だよね、と思った
- まずでかい問題があって、それを解決するための過程などを追記していく
だったらこれをそのままブログにすればよくね?と思った
ブログネタ(平たく言えば自分の問題意識)用のリポジトリを作って可視化
- APIを叩いてその日起こしたIssueやコメントを機械的に拾って
- ある程度編集したら記事として公開してしまう
- まずはそれを調べるところから始めよう
GithubのAPIでできることを調べる
1 を実現するために必要な情報が取れるのかを調べる
・指定したリポジトリのIssueとコメントの一覧が取れるか ・日付で絞り込みができたらなおGood
Issueごとのコメントはここで取れる
https://docs.github.com/en/rest/reference/issues#list-issue-comments
リポジトリごとのIssueのリスト https://docs.github.com/en/rest/reference/issues#list-repository-issues
まずIssueの一覧を取ってきてそのIDからコメントの一覧を取得するイメージかな?
楽勝で取れるっぽいので簡単なコード書いて試してみる
はてなブログのAPIについて調べる
Github APIから取得したIssueの文章をはてなブログに投稿できるようにする
https://kamonohashik.hateblo.jp/
XMLをPOSTしてやると新規投稿ができるらしい
http://developer.hatena.ne.jp/ja/documents/blog/apis/atom
ここからログインしてread_public, write_publicを有効にする
https://www.hatena.ne.jp/kamonohashiy/config/auth/develop
適当極まりないがとりあえずPythonで要件を満たすコードが書けた。
パスワードとかもハードコーティングしちゃってるので、まだ公開はしない。 AWSにSAMで上げて自動投稿できるようにした段階でプッシュする。
cronで自動実行されない
SAMからローカルで実行したときは正常に動くのだが、cronで指定したはずの時間に自動実行されない。
何かが間違っているのか、要調査
Issueを起こしたときの最初のコメントが記事に反映されていない
タイトルの通り
Issueを取ってきたときのレスポンスのbodyにコメントが含まれているので、それを表示するよう修正。