Podle zadani "MS365 prava konektoru": - Calendar: calendarView, getSchedule, get/patch/delete udalosti - Planner: plany skupiny, buckety, tasky, create/patch/delete s ETag - GET /admin-consent/url pro onboarding klientskeho tenantu - examples/csharp/ListUsersTop10: ukazka volani GET /users?top=10 vcetne sifrovani hlavicek X-MS365-* - README: multitenant napojeni, endpointy, opravneni, zaznam zmen Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Ukazky volani sluzby v C#
ListUsersTop10
Konzolova aplikace (.NET 8), ktera zavola GET /users?top=10 a vypise
displayName, userPrincipalName, mail a id kazdeho uzivatele.
Obsahuje tridu CredentialEncoder, ktera sifruje hodnoty pro hlavicky
X-MS365-Tenant-Id, X-MS365-Client-Id a X-MS365-Client-Secret presne tak,
jak je sluzba dekoduje v app/credentials.py. Tridu lze zkopirovat do
libovolneho projektu, nema zadne externi zavislosti.
Spusteni
cd examples/csharp/ListUsersTop10
$env:MS365_SERVICE_BASE_URL = "https://services.csbot.cz/apps/microsoft-365-service"
$env:MS365_TENANT_ID = "<tenant id>"
$env:MS365_CLIENT_ID = "<client id>"
$env:MS365_CLIENT_SECRET = "<client secret>"
$env:MS365_CREDENTIAL_ENCODING_SECRET = "<sdileny secret, stejny jako na serveru>"
dotnet run
Co ocekavat
200a JSON ve tvaru Microsoft Graph:{ "value": [ ... ], "@odata.nextLink": "..." }.400kdyz hlavicky chybi, jsou neuplne, prosle nebo je spatny sdileny secret.502kdyz Microsoft Graph nebo prihlaseni k Entra ID selze, detail je v tele odpovedi.503kdyz sluzba nema nastavenyMS365_CREDENTIAL_ENCODING_SECRET.403 text/plainkdyz GET neprojde pres reverzni proxy (IP allowlist), tj. problem neni ve sluzbe, ale v sitovem pristupu klienta.
Hlavicky lze vynechat jen tehdy, kdyz ma sluzba credentials nastavene
v environment promennych na serveru. Instance na services.csbot.cz je nema
(GET /status vraci configured: false), takze tam jsou hlavicky povinne.