我正在寻找一个解决方案,从typescript应用程序和所有有关授权等信息在Dataverse中创建记录。
我找到了一个化名包裹https://www.npmjs.com/package/dynamics-web-api
我需要知道这会起作用吗?如果是,还有关于这个主题的更多信息吗?或者有人做过吗?
我正在使用,但我得到了一个错误与这段代码:
try{
//call any function
const responseDyn = async () => {
await dynamicsWebApi.executeUnboundFunction('WhoAmI');
}
console.log(`Hello Dynamics 365! My id is: ${responseDyn.UserId}`);
}
catch (error){
console.log(error);
它说UserId在类型Promise(void(上不存在——它怎么知道呢,因为它还没有json。
您得到的错误是一个代码错误,与Dataverse无关。尝试将所有内容封装在异步箭头函数中,或者使用then((。
(async () => {
const responseDyn = await dynamicsWebApi.executeUnboundFunction('WhoAmI');
console.log(`Hello Dynamics 365! My id is: ${responseDyn.UserId}`);
})();
接下来,从react应用程序与Dataverse对话是完全可能的,但要克服的第一个挑战是向Azure&Dataverse,并获取一个令牌以包含在您的web请求中。
请参阅此处了解有关所需身份验证的解释,然后参阅此处了解所有详细说明&代码示例创建一个Azure应用程序,然后使用MSAL.js(Microsoft身份验证库(进行身份验证。
您正在查看的github库是第三方库,而不是官方库。github页面解释说,库不为您处理身份验证。该库没有错,只是指出了它,因为您可能更喜欢先使用标准的fetch HTTP请求。请参阅Dataverse Web Api文档。
最后,在Dataverse模型驱动的应用程序/画布应用程序中使用web api不需要身份验证,因为在这些情况下,您已经登录