This is a sub-repo for the Windows Community Toolkit focused on Microsoft Graph providing a set of Helpers and Controls for development on Windows 10 with .NET.
This new library replaces the Microsoft.Toolkit.Uwp.UI.Controls.Graph
package; however, it is not backwards compatible nor does it provide all the same features at this time.
If you need similar controls for the Web, please use the Microsoft Graph Toolkit.
- UWP Windows 10 18362 (🚧 TODO: Check Lower SDKs for UWP)
- XAML Islands on .NET Core 3 w/ Windows 10 18362 (See Sample)
LoginButton
&PersonView
on Android via Uno.Graph-Controls useUno.Microsoft.Graph.Controls
package. (🚧PeoplePicker
soon!)- 🚧 Coming Soon 🚧
- iOS (Waiting on MSAL#1378 merge should be 4.4.0?)
Before using controls that access Microsoft Graph, you will need to register your application to get a ClientID.
After finishing the initial registration page, you will also need to add an additional redirect URI. Click on "Add a Redirect URI", then "Add a platform", and then on "Mobile and desktop applications". Check the
https://login.microsoftonline.com/common/oauth2/nativeclient
checkbox on that page. Then click "Configure".
Use the following command on the Package Manager Console to install the NuGet to your project:
Install-Package Microsoft.Toolkit.Graph.Controls -IncludePrerelease
Then open your MainPage.xaml
file and add the following behavior:
<Page
...
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:providers="using:Microsoft.Toolkit.Graph.Providers">
<Interactivity:Interaction.Behaviors>
<providers:InteractiveProviderBehavior ClientId="YOUR_CLIENT_ID_HERE" Scopes="User.Read,User.ReadBasic.All,People.Read"/>
</Interactivity:Interaction.Behaviors>
</Page>
You can also use the <providers:MockProviderBehavior/>
instead to provide some test data, though we're currently investigating an issue with the search results returned for PeoplePicker, see Issue #24.
You can use the Scopes
property to preemptively request permissions from the user of your app for data your app needs to access from Microsoft Graph.
You only need the main/first page of your app to load use the provider behavior. This will initialize the graph provider for your entire application.
That's all you need to get started!
You can add any of the controls now to your XAML pages like we've done in our sample.
You can use the ProviderManager.Instance
to listen to changes in authentication status with the ProviderUpdated
event or get direct access to the .NET Graph Beta API through ProviderManager.Instance.GlobalProvider.Graph
, just be sure to check if the GlobalProvider
has been set first and its State
is SignedIn
:
var provider = ProviderManager.Instance.GlobalProvider;
if (provider != null && provider.State == ProviderState.SignedIn)
{
// Do graph call here with provider.Graph...
}
Visit the Uno.Graph-Controls repo for instructions on using the library with Uno on Android.
Target | Branch | Status | Recommended package version |
---|---|---|---|
Pre-release beta testing | master |
Please use GitHub Issues for bug reports and feature requests.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.
This project is supported by the .NET Foundation.