U proteklih nekoliko godina, Microsoft je polako širio “profilno” iskustvo. Nedavno dodavanje sertifikata i nagrade je ono na šta me je potaklo da osvežim pamćenje /profil konačna tačka, pa hajde da pogledamo dublje, hoćemo li.
Podsjećamo, svaki korisnik unutar grafa nije predstavljen samo pridruženim korisničkim objektom, već i profilom resursa, skupom odnosa koji prikazuje dodatne metapodatke, kao što je skup projekata na kojima je korisnik radio, na primjer. Sa nedavnim dodatkom nagrada i potvrda odnosa, ne postoji manje od 20 takvih dodatnih skupova svojstava koji se mogu konfigurirati za svakog od vaših korisnika. Nepotrebno je reći da ovo ide dalje od onoga što smo navikli da vidimo na karticama korisničkih profila u različitim aplikacijama, iako nisu svi od 20 skupova odnosa trenutno izloženi u obliku korisničkog interfejsa.
Za otkrivanje korisničkog profila možete koristiti /beta/users/id/profile krajnja tačka. Ovdje treba dati nekoliko važnih napomena. Prvo, nedostatak podrške za dozvole aplikacija je odmah očigledan, što automatizaciju čini složenijom. Što se tiče stvarno potrebnih dozvola, User.Read.All služiće za operacije čitanja, tj User.ReadWrite.All za pisanje. Konačno, sve krajnje tačke i metode o kojima ovdje raspravljamo dostupne su samo pod /beta grana, koja nije zvanično podržana.
Evo kako izgleda uzorak profila. Prilično dugo, čak i ako sve ostavimo po strani @odata.kontekst svojstva!
GET https://graph.microsoft.com/beta/users/user@domain.com/profile
Također imajte na umu unose sažetka/istaknuća – oni odgovaraju (skupovima) svojstava koja se automatski popunjavaju na osnovu podataka dostupnih unutar usluge, tako da ne počinjete ispočetka! Na primjer, odjeljak Nalozi će biti popunjen podacima iz Graph-a, dok se podaci u polju Napomene pojavljuju iz SharePoint Online. Također možete primijetiti da je svako od ovih svojstava zbirka, tj. može pohraniti više vrijednosti. Evo primjera za skup vrijednosti pod mojim elektronska pošta polje:
Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/users/user@domain.com/profile/emails" | select -ExpandProperty value | select type,address type address ---- ------- main user@domain.com work user+test@domain.com work user@tenant.onmicrosoft.com work webmaster@domain.com work postmaster@domain.com work hostmaster@domain.com
Budući da svako od izloženih svojstava predstavlja samostalan resurs, možete ih pojedinačno ispitivati prema njihovoj krajnjoj tački, kao što je /email u gornjem primjeru. Imajte na umu da korištenjem $odaberi sa ćebetom /profil upit će vratiti sva svojstva.
Zanimljiv dio je naravno dodavanje stvari, pa da vidimo kako možemo dodati nekoliko nagrada na moj vlastiti korisnički profil. Moramo izdati POST zahtjev protiv /profil/nagrade krajnja tačka, sa JSON korisnim opterećenjem koje predstavlja personAward resurs. Za razliku od drugih Graph metoda, ne morate koristiti ISO-8601 format za datume. Evo primjera zahtjeva:
POST https://graph.microsoft.com/beta/me/profile/awards "description": "This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others.", "displayName": "MVP - Office 365", "issuedDate": "01 October 2014", "issuingAuthority": "Microsoft", "webUrl": "https://mvp.microsoft.com/"
Od ovog puta smo koristili /mene krajnja tačka i nije navela vrijednost za dozvoljena publika imovine u našem zahtjevu, kasnije bi mogao nastati problem: niko osim mog korisnika neće moći vidjeti ove podatke. Ovo možemo ispraviti izdavanjem novog zahtjeva za REPAIR dozvoljena publika vrijednost. Kao što je gore spomenuto, svako od svojstava profila predstavlja kolekciju, tako da u našem slučaju moramo navesti i pojedinačnu instancu dodjele ( id vrijednost prikazana iznad) u PATCH-u:
PATCH https://graph.microsoft.com/beta/me/profile/awards/0066c42b-f467-4d41-93e1-8bc1e53b2983 "allowedAudiences": "organization"
I 204 Nema sadržaja odgovor signalizira uspješno izvršenje, što možemo potvrditi putem drugog GET zahtjeva, ako je potrebno.
Kreiranje i provjera valjanosti unosa funkcionira na isti način, s jedinom razlikom što je izloženo još nekoliko svojstava. To uključuje CertificationIdjedinstveni identifikator koji predstavlja Vašu stečenu certifikaciju, datum početka i završetka i issuingCompany (tj. PearsonVue u ime Microsofta). Evo primjera kako ga konfigurirati u ime drugog korisnika (trebat će vam User.ReadWrite.All dozvole i Globalni administrator ili Administrator za ljude uloga):
POST https://graph.microsoft.com/beta/users/user@domain.com/profile/certifications "certificationId": "D725-3153", "issuedDate": "24 Jan 2012", "description": "This certification is granted to individuals that have completed the beta Office 365 exams", "displayName": "Microsoft® Certified IT Professional: Office 365 Charter Member", "thumbnailUrl": "https://learn.microsoft.com/en-us/media/learn/certification/badges/microsoft-certified-general-badge.svg?branch=main", "webUrl": "https://learn.microsoft.com/en-us/users/michev/credentials/certification-o-/nouid.1442?tab=credentials-tab", "allowedAudiences": "organization", "issuingAuthority": "Prometric", "issuingCompany": "Microsoft"
Nakon što konfigurirate željena svojstva profila, ona će odmah biti vidljiva ispod korisničkog profila i kartice drugih iskustava. Dobra vijest je da ne morate raditi ništa drugo, nema potrebe da ručno mapirate polja na karticu profila ili nešto slično. Snimak ekrana ispod pokazuje kako Nagrade i sertifikati odjeljak kartice profila izgleda ovako, a više primjera možete pronaći u službenoj dokumentaciji.

Možete kliknuti na određeni certifikat ili unos nagrade da prikažete njegov detaljan opis, datum izdavanja i vezu do stranice izdavaoca, ako je primjenjivo. Do četiri “značke” su prikazane Pregled kartica sa nedavnim dostignućima (u proteklih 30 dana) istaknutim na vrhu ekrana. Da biste dobili cijeli set, kliknite na Pogledajte još nagrada i sertifikata link koji vas vodi do Kontakti karticu kartice profila i odgovarajući odjeljak u njoj.
Do sada smo govorili samo o konfigurisanju svojstava profila po korisniku. Pošto već imamo dostupne odgovarajuće metode Graph API-ja, naravno to možemo učiniti kolektivno za sve naše korisnike ili automatizirati uvoz relevantnih podataka iz vanjskog sistema. Microsoft zapravo nudi takvo rješenje u obliku Credly konektora za Copilot, jer naravno automatizacija nije moguća bez AI/Copilot-a.
Ono što Microsoft ne nudi je način na koji krajnji korisnici unose svoje podatke (pod pretpostavkom da ne idu Graf rutom, to jest). Iskustvo sa profilnom karticom ne dozvoljava korisnicima da upravljaju nagradama i sertifikatima, a isto važi i za sve druge „ulazne tačke“ koje krajnji korisnik može koristiti. Što se krajnjih korisnika tiče, ovo je iskustvo samo za čitanje, što zauzvrat malo umanjuje njegovu vrijednost.
Još nešto prije nego što zatvorimo članak. Možda ćete primijetiti da većinu vremena, createdBy i lastModifiedBy svi imaju null vrijednosti u mnogim podržanim svojstvima profila. Ovo je manje-više očekivano i ne biste se trebali oslanjati na ova polja u bilo kakvom scenariju istrage/revizije. U najboljem slučaju, možete iskoristiti prednost izvor imovine i izvori GUID za savjet o tome odakle dolaze podaci, pogledajte ovu tabelu.