Microsoft Teams Graph API κΆν μ€λ₯ λλ¬Έμ 골머리λ₯Ό μκ³ κ³μ κ°μ ? μ¬λ¬λΆλ§ κ·Έλ° κ² μλλλ€. Teamsμ© λ΄, ν λλ μλνλ₯Ό κ°λ°νλ κ°λ°μλ€μ "μμ
μ μλ£ν κΆνμ΄ λΆμ‘±ν©λλ€" λλ AADSTS65001κ³Ό κ°μ μ€λ₯μ μ§λ©΄νλ κ²½μ°κ° λ§μ΅λλ€. νμ§λ§ κ±±μ νμ§ λ§μΈμ. μ΄ κ°μ΄λμμλ μ΄λ¬ν μ€λ₯λ₯Ό μ μνκ² ν΄κ²°ν μ μλ μ€μ©μ μΈ λ°©λ²μ μλ €λ립λλ€ . μ΄ κ°μ΄λλ₯Ό λ§μΉλ©΄ API νΈμΆμ΄ μννκ² μ΄λ£¨μ΄μ§ κ²μ
λλ€. μ§κΈ λ°λ‘ μμν΄ λ³ΌκΉμ! π
Microsoft Teams Graph API κΆν μ€λ₯μ μμΈμ 무μμ
λκΉ ?
κ·Όλ³Έμ μΌλ‘ μ΄ μ€λ₯λ μ± λ±λ‘ κΆνκ³Ό μμ²λ Graph API λ²μ κ°μ κΆν λΆμΌμΉμμ λΉλ‘―λ©λλ€. Microsoft Graphλ 보μμ μν΄ μ격ν μ΅μ κΆν μμΉμ μ μ©ν©λλ€.
μΌλ°μ μΈ μ λ° μμΈμ λ€μκ³Ό κ°μ΅λλ€.
- β οΈ API κΆνμ΄ λλ½λμκ±°λ μλͺ»λμμ΅λλ€(μ:
Channel.ReadBasic.Allνμ¦ μ±λ).
- β μ ν리μΌμ΄μ
κΆνμ λν κ΄λ¦¬μ μΉμΈμ΄ λΆμ¬λμ§ μμμ΅λλ€.
- π ν ν° λ¬Έμ : μμλ κΆνκ³Ό μ ν리μΌμ΄μ
κΆν λΆμΌμΉ.
- π₯ ν΄λΉ μ¬μ©μμκ² νμ¦ κ΄λ¦¬μμ κ°μ μν μ΄ μμ΅λλ€.
- π‘οΈ μ‘°κ±΄λΆ μ‘μΈμ€ μ μ±
μΌλ‘ μΈν΄ μ‘μΈμ€κ° μ°¨λ¨λμμ΅λλ€.
μ΄λ¬ν μ¬νλ€μ μ΄ν΄νλ©΄ λ¬Έμ ν΄κ²°μ κΈ°λ°μ΄ λ§λ ¨λ©λλ€. λ¬Έμ ν΄κ²°μ μμν μ€λΉκ° λμ
¨λμ? λ€μ λ¨κ³λ₯Ό μ ννκ² λ°λΌμ£ΌμΈμ.
νμ¦μμ κ·Έλν API κΆν μ€λ₯λ₯Ό ν΄κ²°νλ λ¨κ³λ³ λ°©λ²
κΈ°λ³ΈλΆν° μμν΄μ μ°¨μ°¨ ν΄κ²°ν΄ λκ°μΈμ. λλΆλΆμ λ¬Έμ λ 10λΆ μμ ν΄κ²°λ©λλ€. ν: νμ κ°λ° νκ²½μμ λ¨Όμ ν
μ€νΈν΄ 보μΈμ! β
π 1λ¨κ³: Azure ν¬νΈμμ μ± λ±λ‘μ νμΈνμΈμ
- Azure ν¬νΈ μ λ‘κ·ΈμΈνμΈμ .
- Azure Active Directory > μ± λ±λ‘ > μ± μΌλ‘ μ΄λν©λλ€ .
- API κΆν μμ Teams κ΄λ ¨ λ²μκ° μΆκ°λμλμ§ νμΈνμΈμ.
| κΆν μ ν | λ²μ μμ | μ¬μ© μ¬λ‘ |
| μμλ¨ | Channel.ReadBasic.All | μ¬μ©μλ₯Ό λμ νμ¬ μ±λμ μ½μ΅λλ€. |
| μ ν리μΌμ΄μ
| Team.ReadBasic.All | νμ μ‘μΈμ€νλ λ°λͺ¬ μ± |
| μμλ¨ | Chat.Read | μ±ν
/λ©μμ§μ μ‘μΈμ€ |
| μ ν리μΌμ΄μ
| ChannelMessage.Send | μ± μ 체μ κ²μ λ©μμ§ λ³΄λ΄κΈ° |
- μ± κΆνμ μ¬μ©νλ κ²½μ° 'κ΄λ¦¬μ λμ νμ©'μ ν΄λ¦νμΈμ . νμ΄μ§λ₯Ό μλ‘ κ³ μΉ¨νμΈμ.
π 2λ¨κ³: μ¬λ°λ₯Έ λ²μμ μ ν ν°μ νλνμΈμ
λ§λ£λμκ±°λ μ ν¨κΈ°κ°μ΄ μ§§μ ν ν°μ΄ μ€λ₯μ 90%λ₯Ό μ°¨μ§ν©λλ€. MSAL λλ OAuth νλ¦μ μ¬μ©νμΈμ.
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
scope=https://graph.microsoft.com/.default
μμλ κ²½μ°: μ¬μ©μ λ²μ λ₯Ό ν¬ν¨νμΈμ. ν ν°μ νμΈνλ €λ©΄ jwt.msscp μμ λμ½λ©νμΈμ .roles
π 3λ¨κ³: μ¬μ©μ μν λ° μ μ±
νμΈ
- κ³μ μ νμ¦ κ΄λ¦¬μ λλ κΈλ‘λ² κ΄λ¦¬μ μν μ΄ μλμ§ νμΈνμμμ€.
- Entra ID κ²ν > μν°νλΌμ΄μ¦ μ ν리μΌμ΄μ
> μ± > κΆν .
- ν
μ€νΈμ© μ‘°κ±΄λΆ μ‘μΈμ€ μ μ±
μ μΌμμ μΌλ‘ λΉνμ±νν©λλ€.
π 4λ¨κ³: κ·Έλν νμκΈ°λ₯Ό μ¬μ©νμ¬ API νΈμΆ ν
μ€νΈ
κ·Έλν νμκΈ° λ‘ μ΄λνμΈμ :
- λ¬Έμ κ° λ°μν κ³μ μΌλ‘ λ‘κ·ΈμΈνμΈμ.
- λ²μμ λν λμ.
- λ¬λ¦¬λ€:
GET https://graph.microsoft.com/v1.0/me/joinedTeams.
- μ¬κΈ°μλ μλνμ§λ§ μ±μμλ μλνμ§ μλλ€λ©΄ ν΄λΌμ΄μΈνΈ ID/μν¬λ¦Ώμ λ€μ νμΈνμμμ€.
κ³ κΈ μμ : νμ¦ μ±μ λ§€λνμ€νΈ νΈμ§
μ¬μ©μ μ§μ Teams μ±μ κ²½μ° λ€μμ μμ νμΈμ manifest.json.
"webApplicationInfo": {
"id": "your-app-id",
"resource": "api://your-app-id"
}
νμ¦ κ°λ°μ ν¬νΈμ ν΅ν΄ λ€μ κ²μνμΈμ.
ν₯ν Microsoft Teams Graph API κΆν μ€λ₯λ₯Ό λ°©μ§ νκΈ° μν λͺ¨λ² μ¬λ‘
- β μ¬μ©μ 컨ν
μ€νΈ μ±μλ μμλ κΆνμ μ¬μ©νκ³ , λ°±κ·ΈλΌμ΄λ μ ν리μΌμ΄μ
μλ κΆνμ λΆμ¬νμΈμ.
- π PowerShellμ μ¬μ©νμ¬ λμ μ μ°¨λ₯Ό μλννμΈμ:
Connect-MgGraph; New-MgServicePrincipalAppRoleAssignment.
- π Microsoft Entra κ°μ¬ λ‘κ·Έλ₯Ό μ¬μ©νμ¬ λͺ¨λν°λ§νμΈμ.
- π‘οΈ μ΅μνμ λ²μλ‘ μμνμΈμ: μμ μμνμ¬
Team.ReadBasic.Allνμμ λ°λΌ νμ₯νμΈμ.
- π 곡μ λ¬Έμ μ°Έμ‘°: Teams Graph API κ°μ λ° κΆν μ°Έμ‘° .
μμ£Ό 묻λ μ§λ¬Έ(FAQ)
Graph APIμμ AADSTS65001μ 무μμ μλ―Ένλμ?
μ±μ λ λ§μ κΆνμ΄ νμν©λλ€. νμν κΆνμ μΆκ°νκ³ λμν΄ μ£ΌμΈμ.
μμλ κΆνκ³Ό μ ν리μΌμ΄μ
κΆν, νμ¦ λ΄μλ μ΄λ€ κΆνμ΄ λ μ ν©ν κΉμ?
λνν λ΄μ λν μμ κΆν; μμ½λ μμ
μ λν μ ν리μΌμ΄μ
.
μμ λ¨κ³λ₯Ό λͺ¨λ κ±°μ³€λλ°λ μ¬μ ν λ¬Έμ κ° ν΄κ²°λμ§ μλμ?
λΈλΌμ°μ μΊμλ₯Ό μ§μ°κ±°λ, μνΈλ₯Ό λ€μ μμ±νκ±°λ, Entra IDλ₯Ό ν΅ν΄ Microsoft μ§μ ν°μΌμ μ¬μμμ€.
μΆνν©λλ€! π Microsoft Teams Graph API κΆν μ€λ₯λ₯Ό ν΄κ²°νμ
¨μ΅λλ€ . μ΄λ¬ν ν΄κ²° λ°©λ²μ μ μ©νλ©΄ Teams μ±μ΄ λμ± νμ±νλ κ²μ
λλ€. νΉλ³ν μν©μ΄ μμΌμ κ°μ? μλμ λκΈμ λ¨κ²¨μ£Όμλ©΄ λμλλ¦¬κ² μ΅λλ€. κ³Όκ°νκ² κ°λ°ν΄ 보μΈμ! π