めめめ

たまに書くメモです

Huginnを使ってTwitterでふぁぼった画像をSlackに

f:id:meloso:20180904173902p:plain Huginn
IFTTT程手軽でもないしPipes程直感的でもないけどそんな感じの。

とりあえずTwitterでふぁぼったら付いてる画像だけをSlackに投げる便利なやつを試しに。

準備

クレカ登録したら無料で月1000時間まで枠が貰えるみたいなんでHerokuを使う。
登録したりDeployやらなんやらしたら、説明出てくるんでその通りに進める。

Twitter使うんでアプリケーション登録して、ここを参考に。

heroku config:set TWITTER_OAUTH_KEY="YOUR-KEY"
heroku config:set TWITTER_OAUTH_SECRET="YOUR-SECRET"

これで認証できるんで、HuginnにログインしてServicesからTwitter認証。

あとSlackのIncoming Webhooksも使うんで登録してWebhook URLを取っとく。

Twitter Favorites Agent

Scheduleは適当に。

{
  "username": "各々",
  "number": "10",
  "history": "100",
  "expected_update_period_in_days": "2"
}

Trigger Agent

画像がある場合、次に画像のURLを投げるようにする。

{
  "expected_receive_period_in_days": "2",
  "keep_event": "false",
  "rules": [
    {
      "type": "field==value",
      "value": "photo",
      "path": "extended_entities.media[0].type"
    }
  ],
  "message": [
    "{{extended_entities.media[0].media_url_https}}",
    "{{extended_entities.media[1].media_url_https}}",
    "{{extended_entities.media[2].media_url_https}}",
    "{{extended_entities.media[3].media_url_https}}"
  ]
}

Slack Agent

別になくてもいいけどiconは絵文字使うならこのへんから好きなのを。

{
  "webhook_url": "各々",
  "channel": "#各々",
  "username": "各々",
  "icon": "各々",
  "message": "各々",
  "attachments": [
    {
      "image_url": "{{message[0]}}"
    },
    {
      "image_url": "{{message[1]}}"
    },
    {
      "image_url": "{{message[2]}}"
    },
    {
      "image_url": "{{message[3]}}"
    }
  ]
}

おわり

Trigger AgentのEvent sourcesにTwitterを選択してPropagate immediatelyにチェック、Event receiversにSlackを選択。
Slack Agentの方でもPropagate immediatelyにチェック。

これでふぁぼったアイドルの画像だけが流れてくるチャンネルができて日々に潤いが出ますね。

あと無料だと30分何もないとスリープしちゃうんで、NewRelic使うなりHeroku Scheduler使うなりご自由に。

おわり。