Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 티스토리챌린지
- @EntityListeners
- EmbeddedId
- Protecle
- 운동해서 광명찾자
- createEntityGraph
- getDateCellValue
- mysql equal null
- mysql =
- @CreateDate
- AuditingEntityListener
- spring boot
- 오블완
- MSSQL
- getEntityGraph
- 1*1000
- yml
- RootGraph
- load order
- deserializer
- +9:00
- apatch poi
- NamedEntityGraph
- mysql not equal null
- MYSQL
- https
- sendFractionalSeconds
- fractional seconds
- 버전 문자열 비교
- pooled-lo
Archives
- Today
- Total
Hello
Microsoft Teams의 Incoming Webhook 사용 정리 본문
728x90
Microsoft Teams의 Incoming Webhook을 사용하면 외부 애플리케이션에서 Teams 채널로 메시지를 보낼 수 있습니다.
스케줄링 서비스에서 webhook을 사용해 자동으로 알림 메시지를 보내기 위해 사용했습니다.
Spring의 WebClient를 사용하여 이를 구현하는 방법을 정리합니다.
Create an Incoming Webhook 내용 대로 팀즈에서 webhook 만들기
2. WebClient를 사용한 Java 코드
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
@Component
@Slf4j
public class TeamsWebhookExample {
private final String webhookUrl ="https://xxx.webhook.office.com/xxxxx";
public void sendTeamsMessage(String body) {
// WebClient 객체 생성
WebClient webClient = WebClient.builder()
.baseUrl(webhookUrl)
.defaultHeader("Content-Type", "application/json")
.build();
// POST 요청 보내기
Mono<String> response = webClient.post()
.bodyValue(body)
.retrieve()
.bodyToMono(String.class);
// 응답 출력
response.subscribe(log::info);
}
}
+) Teams Webhook JSON 구조
기본
{"text": "Hello, Teams! This is a simple message."}
추가
{
"summary": "Notification",
"text": "Hello, Teams! This is a detailed message.",
"title": "Message Title",
"sections": [
{
"activityTitle": "Activity Title",
"activitySubtitle": "Activity Subtitle",
"activityImage": "URL to an image",
"facts": [
{
"name": "Fact Name",
"value": "Fact Value"
}
],
"text": "Section text"
}
]
}
- summary: 메시지의 요약입니다. 일부 클라이언트에서는 필수일 수 있습니다.
내가 사용한 버전에서는 필수 값이 었다. 없을 경우 400 Bad Request발생 - title: 메시지의 제목입니다.
- sections: 메시지를 여러 섹션으로 나눌 수 있습니다. 각 섹션은 다음과 같은 필드를 가질 수 있습니다:
- activityTitle: 섹션의 제목입니다.
- activitySubtitle: 섹션의 부제목입니다.
- activityImage: 섹션에 표시될 이미지의 URL입니다.
- facts: 이름-값 쌍으로 구성된 정보 목록입니다.
- text: 섹션의 본문 내용입니다.
참고 : Create & Send Actionable Messages - Teams | Microsoft Learn
728x90
'azure' 카테고리의 다른 글
Microsoft Teams 웹훅 메시지 유실 (0) | 2024.11.20 |
---|---|
[Azure] Microsoft Entra ID에 blob 권한 부여(storage blob data contributor와 contributor) (0) | 2024.03.19 |
Azure Storage Blob sdk V8과 V12 (0) | 2023.10.17 |
Azure DevOps 에서 Azure App Service slot 배포하기 (0) | 2023.10.10 |
Azure Monitor Application Insights 구성 (with JAVA) (0) | 2022.09.15 |