top / index / prev / next / target / source

2019-01-20 diary: [Java][Spring] Teams チャンネルに Incoming Webhook 経由の記事投入

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

[Java][Spring] Teams チャンネルに Incoming Webhook 経由の記事投入

curl コマンドで投げ込み

Microsoft Teams のチャンネルに Incoming Webhook を経由した記事の投げ込み方法をメモします。

echo '{"title": "テスト投込","text": "[いがぴょんの日記v2](https://www.igapyon.jp/igapyon/diary/index.html)"}' | curl -H 'Content-type: application/json' -d @- https://outlook.office.com/webhook/b<中略>a/IncomingWebhook/a<中略>3

Java プログラムで投げ込み

こちらは Java/Spring を使った例です。 Javaで Jackson を利用した JSON シリアライズおよび REST 呼び出しのサンプルも兼ねてます。

import java.io.IOException;
import java.net.URI;
import org.springframework.http.MediaType;
import org.springframework.http.RequestEntity;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Microsoft Teams Incoming Webhook をキックするシンプルサンプル。
 */
public class SimpleTeamsIncomingWebhook {
    /** API 接続先 URL */
    public static final String TEAMS_INCOMING_WEBHOOK = "https://outlook.office.com/webhook/9...中略...a/IncomingWebhook/8...中略...3";

    /** Webhook データ構造 */
    @JsonSerialize
    static class SimpleTeamsIncoming {
        public String title;
        public String text;
    }

    public static void main(String[] args) throws IOException {
        // 送信データの値をセット
        SimpleTeamsIncoming incoming = new SimpleTeamsIncoming();
        incoming.title = "テストポスト";
        incoming.text = "これはテストのポストです。";

        // 送信データを JSONテキスト化
        final ObjectMapper mapper = new ObjectMapper();
        final String incomingJson = mapper.writeValueAsString(incoming);

        // API 呼び出し
        RequestEntity<?> req = RequestEntity //
                .post(URI.create(TEAMS_INCOMING_WEBHOOK)) //
                .contentType(MediaType.APPLICATION_JSON_UTF8) //
                .body(incomingJson);
        new RestTemplate().exchange(req, String.class);
    }
}

Maven 依存関係は以下です。Spring Web を入れることにより Jackson 一式が入ります。

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <version>2.1.4.RELEASE</version>
 </dependency>

関連する日記

ここのところ冷え込みます

暖冬な感じだったのですが、ここのところ、とても冷え込んでますね。。。

Last modified: $Date: 2019-05-11 $

登場キーワード


この日記について