目次


連載 Domino V10 アプリ開発 #鬼わか 解説

第 8 回(最終回)「NotesからSlackにメッセージを投稿してみよう #鬼わか 解説」

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: 連載 Domino V10 アプリ開発 #鬼わか 解説

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:連載 Domino V10 アプリ開発 #鬼わか 解説

このシリーズの続きに乞うご期待。

1

はじめに

連載 「Domino V10 アプリ開発 #鬼わか 解説」のページにアクセスいただき、ありがとうございます。 前回は Notes アプリケーションから認証を利用してツイートの取得を行いました。 今回の記事では、Notes のフォームに入力されたメッセージを Slack に通知するサンプルをご紹介したいと思います。

2

Slackへ投稿するための準備をする

今回は「Incoming Webhooks」と呼ばれる slackApp の機能を使ってみることにします。

これを利用することで簡単に外部サービスから Slack にメッセージを書き込むことが出来るようになります。まず Slack 側の準備を行いましょう。

  1. 自分のアプリを作成します。https://api.slack.com/apps へアクセスし CreateApp をクリックします。

     

  2. アプリの名前(任意)と、そのアプリを追加したいワークスペースを選択して「Create App」をクリックします。ここでは oniwaka-slack といアプリ名にしています。

     

  3. Basic Infromation の画面が表示されるので、「Incoming Webhooks」を選択します。

     

  4. Activate Incoming Webhooks と書かれている箇所の右側に、Off になっているトグルボタンがあるので、これをクリックして On にします。

     

  5. 下の方に [Add New Webhook to Workspace] というボタンがあるので、クリックします。
    投稿先のチャンネルを選択して、許可します。ここでは programmer チャンネルを設定しています。
    元の画面に戻ると [Webhook URL] に一つ URL が追加されていることがわかります。
    この URL を後ほど利用しますので、必ず控えておいてください。

     

3

Slack と連携する LotusScript を書いてみよう

では実際にNotesアプリケーションで試してみましょう。完成イメージは下記のような形になります。

[Notes クライアントでメッセージを入力し、Slack へ通知ボタンをクリック]

 

[Slack の programmer チャンネルへもメッセージが投稿されます]

 

実際のコードはこちらです。

   Sub Click(Source As Button)
        
        Dim session As New notessession
        Dim ws As New NotesUIWorkspace
        Dim uidoc As NotesUIDocument
        Dim SlackURL As String,Body As String,Message As String
        Dim ret As Variant
        Set uidoc = ws.CurrentDocument
      
         '入力メッセージを取得
        message= uidoc.FieldGetText("input")
         
       '2章で取得したWebhookURLをセット        
  SlackURL="https://hooks.slack.com/services/(上記2-e で取得したURL)"
        
        Dim http As NotesHTTPRequest
        Set http=session.CreateHTTPRequest()
       
  'PostのBodyをセット               
        Body=|{"text":"|+message+|"}|
        'ヘッダーのセット               
        Call http.SetHeaderField("ContentType","application/json")
        'Postリクエストの送信
        Call http.Post(SlackURL,Body)
        
End Sub

※ Notes/Domino 10.0.1 FP2 以降を導入することで、日本語も投稿できるようになります。

 

4

おわりに

いかがでしたでしょうか。非常に簡単に LotusScript から Slack へ通知ができることがお分かりいただけたかと思います。Notes のワークフローアプリケーションや文書管理アプリケーションに組み込んで、Slack をはじめとした他のツールにすばやく通知するといった応用も可能です。Notes の世界がぐっと広がり便利になりますね。

さて、当連載もこの第 8 回をもって最終回となります。半年の間、ご愛読ありがとうございました!

今後とも Notes/Domino の情報を積極的に発信していく予定です。こんな連載があったら嬉しいなどのご意見などありましたらぜひお寄せください。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=1066113
ArticleTitle=連載 Domino V10 アプリ開発 #鬼わか 解説: 第 8 回(最終回)「NotesからSlackにメッセージを投稿してみよう #鬼わか 解説」
publish-date=06242019