NetLify関数を使用してスラックにポストイベントの通知


仮想コーヒーでは、我々はほぼ毎日のイベントがあり、我々は毎日スラックでハングアップ!だから、私たちはいくつかのイベントリマインダーをスラックに行く得ることは避けられなかった.我々の最初のパスは、遅いマイクロジャース(我々があなたがいなくて寂しいマイク)によってありました❤️). 私たちのイベントはMeetingplaceに記載されました.IOは、MetingPlaceとスラックのポストから日付をプルダウンするRubyアプリを書きました.
我々がMeetingPlaceから我々自身のCMSに移ったとき、私は若干のアップグレードをする機会を取りました、そして、同時にJavaScriptに変えてください.に沿って従ってください私たちはあなたのために行くいくつかのイベントのアラームを得ることができます!
Meetingplace Events Bot

必要なものはこちら

  • 指定された範囲のイベントを与えるデータソース.我々は、このデータを格納するカスタムCMSを持っているが、これはまた、meetingplace、meetupからすることができます.com、または他のどこ.
  • スラックアプリを作成し、スラック
  • に追加されました
  • いくつかのコードを実行する場所- netlify関数を使用している
  • cronジョブを実行できるもの- を使用しています.時間のアラームをするつもりなら、私はあなたがgithubアクションを使用しないように助言します.あなたはそれらのイベントを開始する時間に十分に近い実行するためにカウントすることはできません.
  • クロンジョブ.org NetLifyでの関数の作成


    netlify関数は、URLにあるJavaScriptファイルです.これは、取得またはポストパラメータを受け取ることができます応答を提供することができます.
    私たちの機能は、私たちのcronジョブ(これについてはもう少し)と呼ばれ、スラックにメッセージを送ります.
    関数が呼び出されると、何が起こるかの基本的な概要を示します.
  • cronジョブはGETGETtype=weeklytype=dailyパラメタで、私たちの機能のURLにtype=hourlyリクエストを送ります
  • 関数はイベントをデータソースから適切なパラメータ
  • から取得します
  • 関数は、必要に応じてイベントを解析します
    次に、それは
  • 上記のブロックテンプレートを使用していくつかのブロックを作成します
  • 最終的に、機能はメッセージを を使っているスラックに送ります
  • あらゆるイベントAPIが少し異なるように見えるので、私はステップ2と3に超深く掘るつもりでありません.

    スラックWeb APIクライアント あなたのためのGiTubテンプレート!


    私は、あなたが同じ考えに続くそれを使うことができる基本的なGithubテンプレートを作成しました:
    あなたがそこに指示に従った後、あなたは我々が必要なすべてを行う作業NetLify機能+スラックアプリがあるでしょう!

    スラックイベントリマインダテンプレート ボーナス:あなたのスラックメッセージを設計する


    あなたは平易なテキストでスラックメッセージを投稿することができますが、私はそれが上のスクリーンショットのようなメッセージを設計するためにスラックの を使用するようにかなり素晴らしく、簡単に見つけました.
    私たちの毎週のメッセージのためのブロックは、ここにあります
    {
      "blocks": [
        {
          "type": "header",
          "text": {
            "type": "plain_text",
            "text": "📆 This Week's Events Are:",
            "emoji": true
          }
        },
        {
          "type": "section",
          "text": {
            "type": "mrkdwn",
            "text": "*<!date^1649768400^{date_long_pretty} {time}|Tuesday, April 12, 2022, 9:00 AM EDT>*\nVirtual Coffee - Morning Crowd"
          }
        },
        {
          "type": "section",
          "text": {
            "type": "mrkdwn",
            "text": "*<!date^1649952000^{date_long_pretty} {time}|Thursday, April 14, 2022, 12:00 PM EDT>*\nVirtual Coffee - Afternoon Crowd"
          }
        },
        {
          "type": "section",
          "text": {
            "type": "mrkdwn",
            "text": "*<!date^1650373200^{date_long_pretty} {time}|Tuesday, April 19, 2022, 9:00 AM EDT>*\nVirtual Coffee - Morning Crowd"
          }
        },
        {
          "type": "context",
          "elements": [
            {
              "type": "mrkdwn",
              "text": "See details and more events at <https://virtualcoffee.io/events|VirtualCoffee.IO>!"
            }
          ]
        }
      ]
    }
    
    毎時のメッセージの例を示します.
    {
      "blocks": [
        {
          "type": "header",
          "text": {
            "type": "plain_text",
            "text": "⏰ Starting Soon:",
            "emoji": true
          }
        },
        {
          "type": "section",
          "text": {
            "type": "mrkdwn",
            "text": "*Test Event*\n<!date^1649790000^{date_long_pretty} {time}|Tuesday, April 12, 2022, 3:00 PM EDT>"
          },
          "accessory": {
            "type": "button",
            "text": {
              "type": "plain_text",
              "text": "Join Event",
              "emoji": true
            },
            "value": "join_event_173",
            "url": "https://virtualcoffee.io",
            "action_id": "button-join-event"
          }
        },
        {
          "type": "context",
          "elements": [
            {
              "type": "mrkdwn",
              "text": "An hour-long chat with devs at all stages of the journey. You can come to hang out with great people, ask questions or bring up a topic, or just sit back and listen to others talk about tech. Currently open to slack members only. Check announcements for the Join Event button.Every Tuesday at 9AM ET!"
            }
          ]
        },
        {
          "type": "divider"
        }
      ]
    }
    

    ブロックキットビルダー ここで注意するカップルクール

  • 形式は、ユーザーのローカルタイムゾーンにフォーマットします.それで、あなたが12 PM ESTで始まる日付があるならば、あなたは<!date>コマンドを使うことができます、そして、それはカリフォルニアのユーザーのために9 amとして出力されます!
  • open in builder私たちにリンクを開くための良い探しボタンを与える.確認ダイアログを追加することもできますし、必要に応じてこれらのいくつかの他のアクションを行う!
  • ビルダーで開く それだ!


    何か質問があれば私に教えてください、またはどこかに我々が改善することができます参照してください場合は、Githubのテンプレート上の問題をファイルしてください!