[Teams] Python에서 Power Automate Workflow을 이용한 유저 멘션
안녕하세요. 주형권입니다.
지난번에 Teams 메시지 전송에 이어서 이번에는 조금 더 다체로운(?) 형태로 메시지를 보낼 수 있는 방법을 찾던 와중에 Teams 채널에서 특정 유저를 멘션하는 부분에 대해서 글을 작성 하였습니다.
기존의 Power Automate Workflow 세팅 및 앞 부분의 사항은 다음의 글을 참고 부탁 드립니다.
앞의 부분은 생략하고 Power Automate Workflow에서 다음과 같이 채우고 저장을 합니다.
Python 코드는 다음과 같습니다. 함수로 만들어서 사용하였는데, 필요에 따라서 변경해서 사용하시면 좋을거 같습니다.
import pymsteams
def teamsmessage_send(email:str)-> None:
myTeamsMessage = pymsteams.connectorcard(r"your webhook url")
myTeamsMessage.payload = {
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"width": "Full",
"body": [
{
"type": "TextBlock",
"text": "<at>Joo</at>",
"wrap": "true"
},
{
"type": "TextBlock",
"text": f"주형권 호출",
"wrap": "true"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"msteams": { "width": "full",
"entities": [
{
"type": "mention",
"text": "<at>Joo</at>",
"mentioned": {
"id": f"{email}",
"name": f"{email}"
}
}
]
}
}
}]
}
myTeamsMessage.send()
try:
teamsmessage_send('your email address')
except:
pass
호출하면 다음과 같이 볼 수 있습니다.
그리고 Python 코드에서 예외처리를 걸어줬는데요.
try:
teamsmessage_send('your email address')
except:
pass
정상적으로 잘 동작하는데 이런 에러가 발생합니다.
raise TeamsWebhookException(r.text)
pymsteams.TeamsWebhookException
왜 그런지는 찾아봤는데, 모르겠네요... text를 r''로 묶어서 보내거나 했지만 역시 안되고 특수문자나 탈출문자열이 없는데 다음과 같이 계속 발생합니다. 저 같은 경우 pymsteams 라이브러리를 그냥 pass로 고쳐서 쓰거나 위와 같이 예외처리로 그냥 pass 했는데, 저 에러 이외에 에러가 발생 할 경우 문제가 있을 수 있으니 꼭 예외처리를 바꿔서 사용해주세요. (이 부분은 어디까지나 테스트로 하였기에 단순히 pass로 처리 하였습니다.)
추가적으로 adaptivecard를 더욱 꾸며서 사용 하실분은 아래의 링크를 참고해서 사용하시면 많은 도움이 될 것 같습니다.
추후에 바로가기 링크생성등의 글도 작성 예정이니 많은 관심 부탁 드립니다.
감사합니다.