我需要将数据从MVC表单发布到我们的Dynamics CRM,我已经获得了获取访问令牌的功能设置,但是我不知道如何使用它将数据发送到CRM。我可以通过邮递员在CRM中张贴和创建记录,但是我不知道如何将Access Token和邮递员张贴在C#中结合起来。
获取访问令牌:
string organizationUrl = "https://myorgcrm.crm4.dynamics.com";
string appKey = "XXXXXXxxxXxXXXxXXXXXX+XXxxxxXXxxxXXxxxXXXXX=";
string aadInstance = "https://login.microsoftonline.com/";
string tenantID = "myorg.onmicrosoft.com";
string clientId = "XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX";
public string AuthenticateWithCRM()
{
AuthenticationContext authContext = new AuthenticationContext("https://login.windows.net/common", false);
ClientCredential clientcred = new ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantID);
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(organizationUrl, clientcred).Result;
return authenticationResult.AccessToken;
}
这返回一个访问令牌,因为它返回一个令牌(我假设这是正确的),但是直到我确定如何尝试发送数据之前,我一直无法确定。
邮差。...
JSON:
{
"org_accountnumber": '12345',
"org_Individualid":
{
"firstname": "Luke",
"lastname": "Skywalker"
},
"orgstuff@odata.bind":"/orgstuff_schemes(XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX)"
}
我使用在身份验证URL,访问令牌URL和客户端ID中填写的访问令牌来运行此程序,然后它根据我的工作窗口用户帐户运行。
答案 0 :(得分:0)
对Dynamics CRM不太熟悉,但从我found on the MS DOCS的角度看,似乎很熟悉。
通常,当用户登录到您的应用程序或应用程序自举时,您通常会请求访问令牌。根据OAuth,您必须在任何请求中将accesstoken作为标头传递。为此,请使用C#
using (HttpClient httpClient = new HttpClient())
{
httpClient.Timeout = new TimeSpan(0, 2, 0); // 2 minutes
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", result.AccessToken);