Microsoft Teams Graph API ๊ถํ ์ค๋ฅ ๋๋ฌธ์ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์๊ณ ๊ณ์ ๊ฐ์ ? ๋น์ ๋ง ๊ทธ๋ฐ ๊ฒ ์๋๋๋ค. ์ด ํํ ์ค๋ฅ๋ Teams์์ ์ฑ ํตํฉ, ๋ด ๋ฐฐํฌ, ์๋ํ ํ๋ฆ์ ์ค๋จ์ํต๋๋ค. ํ์ง๋ง ๊ฑฑ์ ํ์ง ๋ง์ธ์. ์ฌ๋ฐ๋ฅธ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด Microsoft Teams "Graph API" ๊ถํ ์ค๋ฅ๋ฅผ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ Teams ์ฑ์ ๋ค์ ์ํํ๊ฒ ์คํํ ์ ์๋ ์ค์ฉ์ ์ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ง๊ธ ๋ฐ๋ก ์์ํด์ ์์ฐ์ฑ์ ๋์ฐพ์ ๋ณด์ธ์! โ
Microsoft Teams์์ Graph API ๊ถํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์์ธ์ ๋ฌด์์
๋๊น ?
Graph API๋ ์ฑ๋ ๊ด๋ฆฌ, ๋ฉ์์ง, ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ก์ธ์ค์ ๊ฐ์ Teams ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ฑ์ ํ์ํ ๊ถํ์ด ๋ถ์กฑํ๋ฉด "๊ถํ ๋ถ์กฑ" ๋๋ "์ก์ธ์ค ๊ฑฐ๋ถ"์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฃผ์ ์์ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- โ Microsoft Entra ID (์ด์ Azure AD) ์ฑ ๋ฑ๋ก ๋์๊ฐ ๋๋ฝ๋์์ต๋๋ค.
- โ ์์๋ ๊ถํ๊ณผ ์ ํ๋ฆฌ์ผ์ด์
๊ถํ์ด ์ผ์นํ์ง ์์ต๋๋ค.
- โ ํ ํฐ์ด ๋ง๋ฃ๋์๊ฑฐ๋ ๊ฒ์์ ์ํ๊ฐ ํ์ธ๋์ง ์์์ต๋๋ค.
- โ ๋ฏผ๊ฐํ ๋ฒ์์ ๋ํด ํ
๋ํธ ์ ์ฒด ๊ด๋ฆฌ์ ๋์๊ฐ ๋ถ์ฌ๋์ง ์์์ต๋๋ค.
์ด๋ฌํ ์ฌํญ์ ์ดํดํ๋ฉด ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ต๊ทผ Graph API ์
๋ฐ์ดํธ๋ ๋ณด์์ ์ํด ์ต์ ๊ถํ ๋ฒ์๋ฅผ ๊ฐ์กฐํ๋ฏ๋ก ์ฌ๋ฐ๋ฅธ ๊ตฌ์ฑ์ด ํ์์ ์
๋๋ค.
๋จ๊ณ๋ณ ์๋ด: Microsoft Teams "๊ทธ๋ํ API" ๊ถํ ์ค๋ฅ ํด๊ฒฐ
๊ฒ์ฆ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ผํ์ธ์. ๊ตฐ๋๋๊ธฐ ์์ด ํ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ์ค ์ ์์ต๋๋ค. ์ฑ ๋ฑ๋ก๋ถํฐ ์์ํ์ฌ ์ธ์ฆ๊น์ง ์งํํ์ธ์.
1๏ธโฃ Microsoft Entra ID์ ์ฑ์ ๋ฑ๋กํ๊ฑฐ๋ ์
๋ฐ์ดํธํ์ธ์
Microsoft Entra ๊ด๋ฆฌ ์ผํฐ ๋ก ์ด๋ํ์ธ์ .
- ์ฑ ๋ฑ๋ก > ์ ๋ฑ๋ก ์ผ๋ก ์ด๋ํ์ธ์ .
- ์ฑ ์ด๋ฆ์ ์ง์ ํ์ธ์(์: "Teams Graph Bot").
- ์ด ์กฐ์ง ๋๋ ํฐ๋ฆฌ์ ์๋ ๊ณ์ ๋ง ์ ํํ์ญ์์ค .
- ๋ฆฌ๋๋ ์
URI: ๋ด์ ๊ฒฝ์ฐ .์ ์ฌ์ฉํ์ธ์
https://token.botframework.com/.auth/web/redirect.
๊ฟํ: ์ธ์ฆ ์ค์ ์์ ID ํ ํฐ ๊ณผ ์ก์ธ์ค ํ ํฐ์ ํ์ฑํํ์ธ์ .
2๏ธโฃ ํ์ ๋ํ Graph API ๊ถํ ๊ตฌ์ฑ
API ๊ถํ > ๊ถํ ์ถ๊ฐ > Microsoft Graph๋ฅผ ํด๋ฆญํฉ๋๋ค .
Microsoft Teams Graph API ์์
์ ์ํด ๋ค์ ํ์ ๊ถํ ํ๋ฅผ ์ฌ์ฉํ์ญ์์ค .
| ๋ฒ์ |
์ ํ |
ํ์์์ ์ฌ์ฉ ์ฌ๋ก |
| ์ฑ๋.ReadBasic.All |
์์/์ ์ฒญ |
ํ ์ฑ๋์ ์ฝ์ด๋ณด์ธ์ |
| ๊ทธ๋ฃน.์ฝ๊ธฐ์ฐ๊ธฐ.๋ชจ๋ |
์ ํ๋ฆฌ์ผ์ด์
|
ํ/๊ทธ๋ฃน ๊ด๋ฆฌ |
| ์ฑํ
.์ฝ๊ธฐ/์ฐ๊ธฐ |
์์๋จ |
๋ฉ์์ง ๋ณด๋ด๊ธฐ/๋ฐ๊ธฐ |
| ํ.๋ฆฌ๋๋ฒ ์ด์.๋ชจ๋ |
์์๋จ |
ํ ๋ชฉ๋ก |
์ฐธ๊ณ : Microsoft Graph ๊ถํ ์ฐธ์กฐ ์ ๊ณต์ ๋ฒ์ .
3๏ธโฃ ๊ด๋ฆฌ์ ์น์ธ ๋ถ์ฌ
์ ํ๋ฆฌ์ผ์ด์
๊ถํ์ ๊ฒฝ์ฐ [ํ
๋ํธ]์ ๋ํ ๊ด๋ฆฌ์ ๋์ ๋ถ์ฌ๋ฅผ ํด๋ฆญํ์ธ์ . ์ด๋ ๊ฒ ํ๋ฉด ๋๋ถ๋ถ์ Graph API ๊ถํ ๊ฑฐ๋ถ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๐ก ํ์ฆ ๊ด๋ จ ํ: ๋ด์ ๊ฒฝ์ฐ Bot Framework ์๋ ๋ฑ๋ก ํ๊ณ Microsoft ์ฑ ID๋ฅผ ์ฐ๊ฒฐํ์ธ์.
4๏ธโฃ ํ ํฐ ํ๋ ๋ฐ ํ
์คํธ
Postman ๋๋ Graph Explorer๋ฅผ ์ฌ์ฉํ์ธ์.
- ์๋ํฌ์ธํธ:
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
- ๊ถํ ๋ถ์ฌ ์ ํ: client_credentials(์ฑ ๊ถํ) ๋๋ authorization_code(์์๋จ).
- ํ
์คํธ: GET /teams/{id}/channels
ํด๊ฒฐํ๊ธฐ ์ด๋ ค์ด ์ค๋ฅ์ ๋ํ ๊ณ ๊ธ ๋ฌธ์ ํด๊ฒฐ
์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ:
- ๐ ํ ํฐ ๋ง๋ฃ ํ์ธ: MSAL.js ๋๋ ์ด์ ๋๋ฑํ SDK๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ๊ณ ์นจํ์ธ์.
- ๐ก๏ธ ๋ฉํฐํ
๋ํธ ํ๊ฒฝ์์ Entra์ ๋ฑ๋ก๋ ์ฑ์ด "์ธ์ฆ๋ ๊ฒ์์"์ธ์ง ํ์ธํ์ธ์.
- โ๏ธ ๊ฐ์ฌ ๋ก๊ทธ: Entra > ๋ก๊ทธ์ธ > ์ฑ ID๋ก ํํฐ๋ง.
- ๐ ์บ์ ์ง์ฐ๊ธฐ: ๋์๋ฅผ ์ทจ์ํ๊ณ ๋ค์ ๋ถ์ฌํฉ๋๋ค.
ํ์ฆ ํญ/์ฑ์ ๊ฒฝ์ฐ manifest.json webApplicationInfoํ์ผ์ ์ฑ ID๊ฐ ํฌํจ๋ ์ ํจํ ๋ด์ฉ์ด ์๋์ง ํ์ธํ์ธ์.
ํฅํ Graph API ๊ถํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
- โญ ์ต์ ๊ถํ ์์น์ ์ค์ํ๊ณ ๋ถ๊ธฐ๋ณ๋ก ๊ฒํ ํ์ธ์.
- ๐ PowerShell์ ์ฌ์ฉํ์ฌ ๋์ ์ ์ฐจ๋ฅผ ์๋ํํ์ธ์:
Grant-MgAppConsentPermission.
- ๐ฑ ๋์ ํ ํฐ ๊ด๋ฆฌ๋ฅผ ์ํด MSAL์ ํตํฉํ์ธ์.
- ๐งช ํญ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋จผ์ ํ
์คํธํ์ธ์.
์ถ๊ฐ ํ: ๊ถํ ์กฐ์ ๊ด๋ จ ๋ด์ฉ์ Microsoft Graph ๋ณ๊ฒฝ ๋ก๊ทธ ์์ ํ์ธํ์ธ์ .
์ฑ๊ณตํ ์ค๋น ๋์
จ๋์? ๐
์ด์ Microsoft Teams Graph API ๊ถํ ์ค๋ฅ๋ ํด๊ฒฐ๋์์ ๊ฒ์
๋๋ค. ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด ์ํํ ํตํฉ์ ๊ฒฝํํ ์ ์์ต๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด ์๋์ ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์. ์ ํฌ๊ฐ ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด ๊ฐ์ด๋๊ฐ ๋์์ด ๋์๋ค๋ฉด ๊ณต์ ํด ์ฃผ์ธ์! ๐
์๋์ ์์ ์ฑ์ ์ค์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค.