Yammer现在更名为Viva Engage,在本文中,我将介绍如何从SPFx Solution连接old API,为Viva Connections构建web部件、扩展、团队应用程序等。
关于授权Viva Engage 权限,请参照上一篇blogs。
使用SPFx的Viva Engage API,首先从Yammer/Viva Engage API获取内容,您需要获取令牌,然后才能查询端点并获取数据或向Viva Engage发布帖子。
前面提到的Yammer API是旧的,并没有涵盖平台支持的所有新功能,为了演示它的工作原理,我将使用我的GitHub上也提供的SPFx web部件来显示Viva Engage在SharePoint中的信息。
1. 在主web部件文件中,首先添加以下导入
import { AadTokenProvider, HttpClient, HttpClientResponse} from '@microsoft/sp-http';
2. 创建一个asyn function以获取API令牌
private async getViVaEngageToken(){
const tokenProvider: AadTokenProvider = await this.context.aadTokenProviderFactory.getTokenProvider();
await tokenProvider.getToken("https://api.yammer.com").then(async token => {
this.vivaEngageToken = token;
});
}
3. 将onInit方法更改为async并调用token function
4. 使用令牌查询端点,在下面的示例中,我从Viva Engage获取最新的帖子
private async getPosts() {
let tempData: any;
await this.context.httpClient.get(`https://api.yammer.com/api/v1/messages.json?limit=30&threaded=true`,
HttpClient.configurations.v1,
{
headers: {
"Authorization": `Bearer ${this.vivaEngageToken}`,
'Content-type': 'application/json'
}
}
).then((response: HttpClientResponse) => {
return response.json();
}).then((data: object) => {
tempData = data;
tempData.messages.forEach((message: any) => {
this.vivaEngagePosts += `${message.body.plain}`;
});
}, (err: any): void => {
console.log(err);
});
}
谢谢大家阅读,若大家日后有其他需求讨论,欢迎线下联系。
标签:Viva,web,Engage,old,SPFx,API,async From: https://blog.51cto.com/u_13969817/6113772