Как разместить данные в Dynamics CRM в C # с помощью токена доступа - PullRequest
0 голосов
/ 27 июня 2018

Мне нужно отправить данные из формы MVC в нашу Dynamics CRM, у меня есть настройка функции, которая получает токен доступа, но я не знаю, как затем использовать его для отправки данных в CRM. Я могу публиковать и создавать записи в CRM через Почтальон, но я не знаю, как объединить токен доступа и пост Почтальона вместе в 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-адресу токена доступа и идентификатору клиента, после чего он работает на основе моей учетной записи пользователя Windows.

1 Ответ

0 голосов
/ 27 июня 2018

Не очень знаком с Dynamics CRM, но из того, что я нашел в MS DOCS , это кажется знакомым.

Обычно вы запрашиваете accessToken как вы, когда пользователь входит в ваше приложение или когда ваше приложение загружается. Согласно 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);
...