本篇是基于dynamics 365 online撰写,本文中使用的365online及azure均为试用版,试用版申请地址
准备工作做完了那就开始吧,本例参照docs,用的代码也是docs中的示例代码,打开visual studio创建一个web application然后新建一个叫SimpleSPA.html的html页面,把示例代码贴进去,代码中关键的几行
var organizationURI = "https:// [organization name].crm5.dynamics.com"; //本示例中的[organization name],tangxinyue
//The URL to connect to CRM (online),比如我的使用环境https://tangxinyue.crm5.dynamics.com,
//这里的tangxinyue即是组织名
var tenant = "[xxx.onmicrosoft.com]";//docs上还是旧的写法,新版的此处有变化,直接是组织名了,比如我这里的tangxinyue.cn
//The name of the Azure AD organization you use 这边的xxx就是skysoft002
var clientId = "[client id]";
//The ClientId you got when you registered the application,这个要在后面在azure ad设置好后才能知道
var pageUrl = "http://localhost: [PORT #]/SimpleSPA.html";
//The URL of this page in your development environment when debugging.
注意这边的端口号,我们本地测试的时候我们F5运行之前建的web application,
本地IIS express会分配个端口号,后面在设置azure ad时需要填上
针对最后一条的port端口号,我这里运行以后是56042,本地application准备好后就去设置azure ad了
登录azure,也可以从前面介绍的office 365 admin center进入,这里能看到aad目录
进aad注册新应用程序
也可以从企业应用程序入口进去新建,但也会转到上图中的应用程序注册
应用程序填写如下,起个名称,程序类型选web应用/api,登录url即你的simple page
建完以后就会有个应用程序id,即上面代码中的clientId
点击清单,将下图红框中的false改成true并保存,新版的要比之前的方便很多,之前还要下载下来改了再上传,为新版的人性化点赞
再点击设置-所需权限-添加
加上CRM Online的权限
至此azure ad的应用程序配置已完成,把SimpleSPA.html中的参数配置都更新好(本文之前贴出来代码),最后运行来看看结果。
F5运行,点击login按钮会跳转到登录页,使用online的账号登录后跳回simplespa.html页面
点击getaccounts按钮就能把数据拉出来,截图中显示的均是online中的示例数据,至此本demo结束。
本篇演示的是在html页面中通过调用online的OAuth身份验证后再通过web api取10条客户数据并展示,后续的博文会继续讲述如何在server-side程序中调用online的OAuth认证再通过web api取客户数据。
本文的参考文献如下:
https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/walkthrough-registering-configuring-simplespa-application-adal-js,
https://community.dynamics.com/crm/b/mscrmshop/archive/2016/01/31/crm-web-api-and-cors-support
文中用到的示例代码来自第一条文献