Using the Microsoft Graph client from an Application Customizer Extension
In this post I will show you how to use the Microsoft Graph client from within an application extension. We will show the latest message from group conversations within an Office 365 group inside the header placeholder of it's SharePoint site.
All these features are currently under preview. Documentation is available here: Release Notes Extensions Dev Preview Drop 1.
Start with a new project, using the Yeoman generator for SharePoint. Run the following from your command line tool:
cd c:\
md demo_graphextension
cd .\demo_graphextension\
yo @microsoft/sharepoint
Provide the wizard with the following details:
_-----_
| | .--------------------------.
|--(o)--| | Welcome to the |
`---------´ | SharePoint Client-side |
( _´U`_ ) | Solution Generator |
/___A___\ '--------------------------'
| ~ |
__'.___.'__
´ ` |° ´ Y `
Let's create a new SharePoint solution.
? What is your solution name? demo-graphextension
? Which type of client-side component to create? Extension (Preview)
? Which type of client-side extension to create? Application Customizer (Preview)
? What is your Application Customizer (Preview) name? GroupConvNotifier
? What is your Application Customizer (Preview) description? ""
Let's first verify the extension actually works. Preview you know ;).
First run this command to make the debug files available on localhost:
gulp serve --nobrowser
To debug/test the extension we will have to use the modern UI in an actual SharePoint site.
We will need the generated extension ID, so grab it from GroupConvNotifierApplicationCustomizer.manifest.json.
Open one of your SharePoint Online sites and add the following to the url, replacing the id with the one you just copied:
?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"6136b9d4-dd9e-45c2-81cc-f4ec789bb53c":{"location":"ClientSideExtension.ApplicationCustomizer"}}
Confirm the load of the debug scripts and verify you get the following result:
![](data:image/png;base64,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)
Let's now start with the code for our extension.
Getting the data
We will start with a service that will allow us to grab the latest conversation data from the group we are currently in.
Add a folder services to the src folder.
In there, add a file MSGraphService.ts and add a class.
export default class MSGraphService {
}
The first thing we will need is the current group id. For this we will need the context from the application customizer.
We will pass the context into the constructor. The type ApplicationCustomizerContext you can find if you look at the BaseApplicationCustomizer class your Extension inherits from.
import the BaseApplicationCustomizer type at the top of the MSGraphService.ts file
import { ApplicationCustomizerContext } from "@microsoft/sp-application-base";
Inside the class, create a private field for the group id and set it from the constructor.
private _groupId = null;
constructor(public context:ApplicationCustomizerContext){
this._groupId = this.context.pageContext.legacyPageContext.groupId;
}
Now that we have the context and the group id, we can get some actual Graph data.
To the context object, Microsoft has now added the graphHttpClient object, which we can use to query for group data and reports. This will be extended in the future. Before, we had to use nasty solutions with popup's and/or iframes to get Microsoft Graph data!!
First, let's create a data structure that will be able to store the objects comming from Graph.
Add a new folder interfaces to the src folder. In the interfaces folder, create a file IThread.ts.
We will add two interfaces: one for the thread object and one for it's posts.
export interface IThread{
id:string;
topic:string;
lastUpdate:Date;
posts:IPost[];
}
export interface IPost{
id: string;
from: string;
content: string;
}
import the interfaces inside the MSGraphService.ts file
import { IThread } from "../interfaces/IThread";
If you want to verify the data structure first, go to the Microsoft Graph Explorer and test the following queries to get to the query we need:
https://graph.microsoft.com/v1.0/groups/
https://graph.microsoft.com/v1.0/groups('{groupid}')
https://graph.microsoft.com/v1.0/groups('{groupid}')/threads
https://graph.microsoft.com/v1.0/groups('{groupid}')/threads?$select=id,topic,lastDeliveredDateTime&$top=1
https://graph.microsoft.com/v1.0/groups('{groupid}')/threads?$select=id,topic,lastDeliveredDateTime&$top=1&$expand=posts($select=from,body,receivedDateTime)
Notice that it is not possible to only take the latest post in one query, because sort and top is not supported in expand just yet. To avoid two REST calls, I'm grabbing the data in one go and will get the last post from code.
Import the necessary types for the graph client first:
import { GraphHttpClient, GraphClientResponse } from "@microsoft/sp-http";
Implement a method getLatestThreadPost that will get the group's latest conversation thread and it's post data based on our Graph URI.
public getLatestThreadPost():Promise<IThread>{
return this.context.graphHttpClient
.get(`v1.0/groups/${this._groupId}/threads?$select=id,topic,lastDeliveredDateTime&$top=1&$expand=posts($select=from,body,receivedDateTime)`, GraphHttpClient.configurations.v1)
.then((response:GraphClientResponse) => response.json())
.then((jsonData) => {
let tData = jsonData.value[0];
console.log("Got conversation info");
console.log(tData);
return {
id:tData.id,
topic:tData.topic,
lastUpdate:tData.lastDeliveredDateTime,
posts: tData.posts.map((post) => {
return {
id : post.id,
from : post.from.emailAddress.name,
content : post.body.content
};
})
};
})
.catch((error) => {
console.log("something went wrong");
console.log(error);
return null;
});
}
That's it for the service! Notice that we do not need to generate any access tokens. The authorization is done by the graphHttpClient in the background, so great for us lazy developers! :)
For the sake of the demo, we are assuming we have at least one thread and one post, of course we could add some validation here to check this first.
Rendering the data
Now that we have our service ready, let's show the data in the header placeholder of our Office365 Group SharePoint site.
We would like to get the latest data before we actually render the extension. For this we can override the OnInit method of our extension base class. Notice that the OnInit is already overridden in the generated code, so let's modify it. Open GroupConvNotifierApplicationCustomizer.ts.
First, import the necessary types:
import MSGraphService from "../../services/MSGraphService";
import { IThread, IPost } from "../../interfaces/IThread";
Now add two private fields to store our service and the latest data:
private _graphService: MSGraphService;
private _latestThreadData: IThread;
Next, override the OnInit method with the following code:
@override
public onInit(): Promise<void> {
this._graphService = new MSGraphService(this.context);
return new Promise<void>((resolve, reject) => {
this._graphService.getLatestThreadPost().then((postData) => {
this._latestThreadData = postData;
resolve();
});
});
}
Notice this method will wait for our promise to resolve. The extension will wait for the OnInit method before rendering, ensuring our data is loaded.
If you want to test the data load, add the following line to the onRender method:
console.log(this._latestThreadData);
Test this by attaching the same query string to the url of your Office365 Group Site. The result, if you open up your console, should look like this:
![](data:image/png;base64,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)
To render the data, we will write a method renderHeader inside the GroupConvNotifierApplicationCustomizer class.
Add the PlaceHolder type as an import:
import {
BaseApplicationCustomizer,
Placeholder
} from '@microsoft/sp-application-base';
First, let's add a private field for the Header placeholder to the class:
private _headerPlaceholder: Placeholder;
Change the onRender method to the following:
@override
public onRender(): void {
console.log(this._latestThreadData);
this.renderHeader();
}
Implement the renderHeader method as follows:
private renderHeader(): void {
console.log('Rendering header!');
// Handling the header placeholder
if (!this._headerPlaceholder) {
this._headerPlaceholder = this.context.placeholders.tryAttach(
'PageHeader',
{
onDispose: this._onDispose
}
);
// The extension should not assume that the expected placeholder is available.
if (!this._headerPlaceholder) {
console.error('The expected placeholder (PageHeader) was not found.');
return;
}
if (this._latestThreadData) {
let lastPost: IPost = this._latestThreadData.posts[this._latestThreadData.posts.length - 1];
if (this._headerPlaceholder.domElement) {
this._headerPlaceholder.domElement.innerHTML = `
<div class="${styles.app}">
<div class="ms-bgColor-themeTertiary ms-fontColor-white ${styles.header}">
<i class="ms-Icon ms-Icon--Info"></i>
${this._latestThreadData.topic}
<i class="ms-Icon ms-Icon--Contact"></i>
${lastPost.from}
<i class="ms-Icon ms-Icon--Message"></i>
${this.parseContent(lastPost.content)}
</div>
</div>`;
}
}
}
}
The onDispose is required when attaching to a placeholder, so implement it:
private _onDispose(): void {
console.log('Disposed header.');
}
Notice also that for the content of the post, which is typically HTML, we use a method parseContent. This method will strip the HTML tags out of the text and limit the maximum length of the content to 200.
Implement it like this:
private parseContent(content:string):string{
let regex = /(<([^>]+)>)/ig;
content = content.replace(regex, "");
if(content.length > 200) content = content.slice(0,200);
return content;
}
As a final step, we will have to implement the styling used in our extension!
Most of the classes used are Office-UI-Fabric css classes, but some are custom. For these, create a new file GroupConvNotifier.module.scss inside the groupConvNotifier folder and add the following content:
.app {
.header {
height:40px;
text-align:center;
line-height:2.5;
font-weight:bold;
display: flex;
align-items: center;
justify-content: center;
}
}
import the styles at the top of the file:
import styles from './GroupConvNotifier.module.scss';
That's it! Now test again and check out that magnificent chat message inside the header!
![](data:image/png;base64,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)