Tag Archives: Exchange
VIDEO – How to Add Contact for other users with MS Graph API
Wanted to share a quick demo for how to query and create Exchange Contacts for another user in Office 365 tenant with MS Graph API. Biggest challenge was permission grant in two places (1) MS Graph API in Azure Applications and (2) Exchange Folder grant Owner to user executing the MS Graph API. Updated blog post with second video to execute Graph API from PowerShell for automation and scheduling. Cheers ![]()
Video 1 – Graph Explorer Web GUI
Video 2 – Graph API from PowerShell
PowerShell – Grant Exchange Folder
$Session = New-PSSession -ConfigurationName "Microsoft.Exchange" -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $UserCredential -Authentication Basic -AllowRedirection Import-PSSession $Session Add-MailboxFolderPermission -Identity "george@spjeff.com:\Contacts" –User "spjeff@spjeff.com" –AccessRights "Owner"
PowerShell – Execute Graph API
# from https://blog.mastykarz.nl/building-applications-office-365-apis-any-platform/
# Config
$clientID = "34f34d49-86b7-4437-a332-6fecaf95a244"
$tenantName = "spjeff.onmicrosoft.com"
$ClientSecret = "secret-goes-here"
$Username = "spjeff@spjeff.com"
$Password = "password-goes-here"
# Access Token
$ReqTokenBody = @{
Grant_Type = "Password"
client_Id = $clientID
Client_Secret = $clientSecret
Username = $Username
Password = $Password
Scope = "https://graph.microsoft.com/.default"
}
$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody
$TokenResponse
# Data call - READ
$apis = @(
'https://graph.microsoft.com/v1.0/me/contacts',
'https://graph.microsoft.com/v1.0/me',
'https://graph.microsoft.com/v1.0/users',
'https://graph.microsoft.com/v1.0/users/george@spjeff.com/contacts')
$apis |% {
Write-Host $_ -Fore Yellow
Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $_ -Method GET -Body $body -ContentType "text/plain"
}
# Data call - WRITE
$newcontact = '{"givenName": "Test","surname": "Contact","emailAddresses": [{"address": "test@contact.com","name": "Pavel Bansky"}],"businessPhones": ["+1 732 555 0102"]}'
$api = 'https://graph.microsoft.com/v1.0/users/george@spjeff.com/contacts'
Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $api -Method "POST" -Body $newcontact -ContentType "application/json"Screenshots
References
- https://developer.microsoft.com/en-us/graph/graph-explorer
- https://stackoverflow.com/questions/57259684/microsoft-graph-api-list-contacts-for-user-users-does-not-work
- https://www.tecknowledgebase.com/6403/how-to-connect-to-exchange-online-using-remote-powershell/
- https://www.tecknowledgebase.com/6419/how-to-add-set-calendar-access-rights-in-exchange/
- https://blog.mastykarz.nl/building-applications-office-365-apis-any-platform
- https://stackoverflow.com/questions/35254559/client-credentials-dont-work-for-powerbi-rest-api
Visio 2013 – new shapes and color scheme
Today I opened Visio to draw a simple network topology. The default shapes are different from Office 2010 and have taken more of a Windows 8 (“Modern UI”) look. Below are some an examples and stencil downloads for drawing the newer style of Microsoft diagrams.
Downloads
- Exchange 2013 Office Visio Stencil.vss http://www.microsoft.com/en-us/download/details.aspx?id=36448
- FLEX_Stencil_112012.css https://www.microsoft.com/en-us/download/details.aspx?id=35772
- Technical diagrams for SharePoint 2013 http://technet.microsoft.com/en-us/library/cc263199.aspx
- Cross-product solutions with Exchange, Lync, and SharePoint Server http://technet.microsoft.com/en-us/library/dn262744(v=office.15).aspx

