![](/img/trans.png)
[英]Create Item in Dynamics 365 Business Central using Rest API
[英]Authorize Dynamics 365 Business Central API
我想创建一个应该按计划运行的 Webjob。 Webjob 的目的基本上是检查一些数据库表,如果表中有新条目,则相应地在 Dynamics 365 BC 中创建项目。 在设计实现所有这些的方法时,第一步是验证 API,以便我们可以进行POST
调用。 此处的文档指定了不同的 API 端点,它们具有各自的身份验证机制,即通过 Azure Active Directory(需要具有 Dynamics Business Central API 的Delegated
权限的应用程序注册)或基本身份验证。 我知道,我们可以使用客户端 ID 和密码从 Azure 活动目录获取访问令牌:
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
var authenticationContext = new AuthenticationContext(authorityUri, true);
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(resource, clientCredential).GetAwaiter().GetResult();
accessToken = authenticationResult.AccessToken;
现在,由于我的 web 作业需要在后端运行而无需任何用户交互,因此 Azure AD 身份验证不适合此处,因为它需要用户交互才能同意。 而基本认证不推荐用于生产场景。
请建议应该如何生成访问令牌,以便它不需要用户交互。
编辑
根据 Allen 的回复,基本身份验证可用于此场景,但需要更新 Microsoft 文档以支持此场景。 但是,在探索 API 端点https://api.businesscentral.dynamics.com/v1.0/<mydomain.com>/api/beta/companies
使用 Z6F061E1CAD5E2783CEA0B2976ED2F4C 时,我面临以下身份验证错误:
{
"error": {
"code": "Authentication_InvalidCredentials",
"message": "The server has rejected the client credentials. CorrelationId: 641ea3fd-19d6-4402-8e68-a70145eb6da3."
}
}
虽然我为我的业务中心用户生成了 Web 服务访问密钥,并将其与用户名一起用于基本身份验证。 我确信我正在复制正确的网络服务密钥。 任何帮助将不胜感激。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.