概要
タイトルまんま、Pocketにストックしてる記事の中からランダムにSlackに投稿するbot作りました。
経緯
会社でデータ解析やる部活に入ってるんですけど、部活といってもSlackのチーム上に存在するだけで人数も少ないので閑散とした感じです。
普段Pocketに技術関連記事をストックしているので、定期的に記事をSlackに投稿して会話のタネ・活性化に繋がれば、と作りました。
(github作ったものを上げてみたかったというのもある)
(自分が記事を再度読む機会を無理やり作りたかったのもある)
使い方
github
ただのpythonスクリプトなのでpython入ってれば動くはずです。
PocketとSlackのAPIキーとかのユーザー情報は環境変数経由で取得するようにしているので、
予め設定しておく必要があります。
cronで実行する際は適切に環境変数が読み込まれるように、shellでexportしてからpython蹴るなど若干工夫が必要です。
(Google Compute Engine上にcron設定したけど環境変数周りで無駄に苦戦した、、、)
実装
pythonもなんちゃってで書いてるのでpythonライクにきれいに書けてないと思います。
内容はPocketのAPI使ってストックされた記事のJSONデータを取得、Dictからランダムに記事を抽出してSlackのAPIで特定のチャネルに投稿します。
参考
- https://qiita.com/daikiojm/items/759ea40c00f9b539a4c8
- https://www.glamenv-septzen.net/view/185
- https://stackoverflow.com/questions/9733638/post-json-using-python-requests
- https://qiita.com/hiro93n/items/2bc4daeb3092bd32c2eb
- https://qiita.com/taigamikami/items/2713856b9f3c3b90f6fd
- https://qiita.com/Tocyuki/items/25092d0d589ab52e83e4
- https://api.slack.com/apps/AA7T7FHL4
- https://www.esz.co.jp/blog/55.html
- https://qiita.com/ykhirao/items/0d6b9f4a0cc626884dbb
- http://blog.masasuzu.net/entry/20100403/1270262298
- https://www.sejuku.net/blog/20915#randomrandintab
- https://stackoverflow.com/questions/11174024/attributeerrorstr-object-has-no-attribute-read
- https://stackoverflow.com/questions/27415193/dict-object-has-no-attribute-read
- https://www.pythonweb.jp/tutorial/dictionary/index4.html
- http://d.hatena.ne.jp/Cassiopeia/20070602/1180805345
- https://teratail.com/questions/100920
- https://qiita.com/yasuhiroki/items/a569d3371a66e365316f#post
- https://getpocket.com/developer/docs/v3/retrieve
- https://qiita.com/masahirok_jp/items/c4f0d8bb5f55a114e31b
- https://getpocket.com/developer/apps/
- https://getpocket.com/connected_applications
- https://syncer.jp/pocket-api-matome
- https://api.slack.com/web
- https://teratail.com/questions/108589
- http://www.sakito.com/2012/09/python-pep-8-e501-line-too-long.html
- https://api.slack.com/docs/message-attachments
- https://qiita.com/m-nakada/items/643909ca14f306a74999
- https://qiita.com/manabuishiirb/items/5c85a8902472d2a664e8
- https://gabekore.org/mac-path-environmental-variable
- http://hazimarino.blogspot.jp/2010/09/python.html