2017-10-04 101 views
1

我试图尝试设在这里新的CRM管理API:https://admin.services.crm.dynamics.com/swagger/ui/index,但每次我试图运行一个电话,该响应消息是相同的:测试CRM管理员API接口扬鞭

“消息“:”授权已拒绝此请求。“

我错过了什么?我假设无论用户当前在Chrome中登录到CRM,这将是管理员调用的用户上下文,但也许我错了?

+0

有一个带'api_key'占位符的输入...你可以在那里输入你的api键,然后点击探索按钮...现在当你点击'试试它'按钮时,你应该得到正确的回应。 – Hackerman

+0

好吧@Hackerman我不敢相信我错过了那个简单的领域......你会提示我如何确定所说的API_Key吗? – Daryl

+0

您可以从以下指南开始https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/online-management-api/get-started-online-management-api – Hackerman

回答

1

Swagger API不能用于测试服务。为了能够使用新的管理API发送和检索数据,必须为在O365中具有Dynamics Admin或Global Admin角色的用户获取有效的OAuth2.0标记(请参阅前两句话in the auth docs)(请参阅第一部分关于管理员角色in the docs)。

当您通过浏览器登录时,您只会获得一个代表您的登录会话的cookie,而不是一个OAuth令牌。 Auth0 has a very good article关于cookie和基于令牌的身份验证之间的差异,但在这种情况下,相关部分是它们不相同,因此您需要明确获取OAuth2.0令牌。

微软在swagger API中包含的是API密钥的字段。可以从Azure AD App注册生成API密钥(有关如何生成密钥的更多信息,请参阅in the AAD docs)。不幸的是,正如我在上面指出的,MSDYN365管理API要求经过身份验证的客户端至少具有Dynamics的服务管理员角色。这些角色是用户角色,不能委派给AAD应用程序注册,您只能为他们使用应用程序角色。

这意味着您处于一个无法使用的困境之中,因此您可以使用该定义的“唯一”一件事是简化与您自己的应用程序的集成。