概要
Huginn は IFTTT や Zapier のようなオートメーションツールです
IFTTT や Zapier の無料プランではいろいろと制限があるので自分で構築してみました
今回は Webhook を使ってみます
環境
- macOS 11.7.6
- docker 23.0.5
- Huginn 2022.08.18
起動
公式の推奨は docker なので docker を使います
とりあえず起動してアクセスできることを確認しましょう (あとで停止していろいろ設定を入れ込み再起動します)
-
docker run -it -p 3000:3000 ghcr.io/huginn/huginn
Rails 6.1.7.2 application starting in production http://0.0.0.0:3000
というログが出るまでしばらく時間がかかるので待ちます
起動後は http://localhost:3000 で管理 UI にアクセスできます
admin/password でログインできます
Twitter アプリの作成
アプリを作成して OAuth 用の権限設定と API キー/シークレットキーの取得をします
アプリの権限などを設定します
コールバック URL に localhost は設定できますがサイト URL に localhost は設定できないのでまだサイトがない場合は適当な URL を入力しましょう
- App permissions・・・Read and write
- Type of App・・・Web App, Automated App or Bot
-
App info (Callback URI)・・・http://your.huginn.site.com:3000/auth/twitter/callback
-
App info (Website URL)・・・http://your.huginn.site.com:3000
設定が完了するとクライアントIDとクライアントシークレットキーが払い出されます
が huginn では使用しないので無視します
権限設定ができたら Consummer Keys を再作成してメモしておきます
huginn ではこちらの API キーとシークレットキーを使います
キーを huginn に登録して起動
取得した Twitter の クライアントIDとクライアントシークレットキー情報を huginn に渡します
基本的には環境変数として渡します
docker run -it -p 3000:3000 \
-e HUGINN_TWITTER_OAUTH_KEY=xxx -e HUGINN_TWITTER_OAUTH_SECRET=xxx \
ghcr.io/huginn/huginn
huginn と Twitter を連携する (サービスの登録)
http://localhost:3000/services にアクセスすると Twitter の OAuth が使えるようになっています
huginn 経由でツイートするユーザでログインしましょう
We're sorry, but something went wrong (500)
となる場合は HUGINN_TWITTER_OAUTH_KEY と HUGINN_TWITTER_OAUTH_SECRET に正しい API キー/シークレットキーが設定されているか確認してください (クライアントIDとクライアントシークレットキーではないので注意してください)
Webhook エージェントの作成
次に Webhook エージェントを作成します http://localhost:3000/agents/new から作成します
Type・・・Webhook Agent Name・・・test_webhook Schedule・・・そのまま Controllers・・・そのまま Keep events・・・そのまま Sources・・・そのまま Receivers・・・そのまま Scenarios・・・そのまま
これで OK です
作成した Webhook エージェントを確認するとコールする URL が発行されるのでメモしておきます
この URL に POST リクエストでアクセスすると Webhook を実行できます
Twitter Publish Agent の作成
あとは Webhook した際に実行されるエージェントを作成します
http://localhost:3000/agents/new から Twitter Publish Agent を作成します
Type・・・Twitter Publish Agent Name・・・test Service・・・Twitter アカウントで連携したサービスを選択 Schedule・・・そのまま Controllers・・・そのまま Keep events・・・そのまま Sources・・・test_webhook Propagate immediately・・・チェックしない Receivers・・・そのまま Scenarios・・・そのまま
Sources に先程作成した Webhook エージェントを指定します
これでツイートする用のエージェントの作成は完了です
動作確認
Webhook をリクエストしてみましょう
そして問題なくツイートされているか確認してください
- curl -XPOST http://localhost:3000/users/1/web_requests/8/xxx
内部的に順番にジョブが処理されるので少しラグがあるかもしれません
最後に
huginn で Twitter と連携する方法を紹介しました
Twitter と連携する部分がやや面倒ですがそれができれば簡単に Webhook 経由でツイートできました
これで IFTTT や zapier を使わなくて済むかもしれません
0 件のコメント:
コメントを投稿