My Photo

Microsoft Dynamics 365

Official Blog for Microsoft Dynamics Functional and Technical Solutions....
Browsing Category " D365 Integration "

Dynamics CRM V9 / D365 Connection through Console without Prompt

There are 2 major steps involved in the process.
  • Register the application with your Azure subscription
  • Build the Console Application
Register the application with your Azure subscription

Build the Console Application 

You need to change only the below authentication method in step 3 rest remains same

Pass user credentials with service URL and client id in Authentication Context


string authority = "https://login.microsoftonline.com/68e86d2-65ed-4666-8ee-f8ce245d20de/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authority, false);
var credentials = new UserCredential("shashank@s.onmicrosoft.com", "pas@wrd1");
//without prompt
AuthenticationResult authResult = authContext.AcquireToken(serviceUrl, clientId, credentials);
authHeader = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
You can have a look at my code here :Sample Code

Happy Coding and CRMing 😊


SOURCE : mscrm.com

Connect to Dynamics CRM / D365 WebApi v9 from Console Application C#

There are 2 major steps involved in the process.
  • Register the application with your Azure subscription
  • Build the Console Application
Prerequisites

CRM / D365 Trial Organisation

Register the application with your Azure subscription


Step 1 Login to azure portal  https://portal.azure.com with your CRM credentials


Step 2 Click on Azure Active Directory - App registrations


 Step 3 Click on to New application registration


 Step 4 Enter Your Desired Name and Redirect URL but select Native in Application type and click on create Button


Step 5 After some some time you will be able to see your created apps then click on it


Step 6  Then click on Required permissions under API Access and then click on Add


Step 7  Click on Select API and then Select Dynamics CRM Online and Click on Select


Step 8  Select Access CRM Online as organisation users checkbox and click on Select Button


Step 9 Then click on Done



Build the Console Application 

Step 1 Navigate to Microsoft Url for sample for web API or click here quick start sample and extract to your desired location


Step 2 Open the Solution file in vs and you have to edit the code by reading the comment with TODO tag


Step 3 Update the service URLwith your current CRM organisation

Eg:
        private static string serviceUrl = "https://sa##x.crm8.dynamics.com";   // CRM Online



To get the client ID go to your app in Azure and copy the GUID specified for Application ID


To get the client ID go to your app in Azure and copy the GUID specified for Application ID and redirecting URL to Home Page URL ( will be same as you gave at the time of app creation in Redirecting URL)

Your Code should look like below

private static string serviceUrl = "https://sablecafex.crm8.dynamics.com";   // CRM Online
private static string userAccount = null;  //CRM user account
private static string domain = null;  //CRM server domain
private static string clientId = "e5cf0024-a66a-4f16-85ce-99ba97a24bb2";
private static string redirectUrl = "http://localhost";  //e.g. "http://localhost/SdkSample"

Step 3 Update Authentication Context with direct Authorisation Endpoint URL

To get Authorisation Endpoint URL go to your app in Azure click on Endpoints button


And copy the OAUTH 2.0 Authorization Endpoint URL


Replace the previous lines for getting authority information and update with the below code

string authority = "https://login.microsoftonline.com/e5cf0024-a66a-4f16-85ce-99ba97a24bb2/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authority, false);



Your Code should look like below

//AuthenticationParameters ap = AuthenticationParameters.CreateFromResourceUrlAsync(
//        new Uri(serviceUrl + "api/data/")).Result;
//AuthenticationContext authContext = new AuthenticationContext(ap.Authority, false);

string authority = "https://login.microsoftonline.com/e5cf0024-a66a-4f16-85ce-99ba97a24bb2/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authority, false);

AuthenticationResult authResult = authContext.AcquireToken(serviceUrl, clientId, new Uri(redirectUrl), PromptBehavior.Always);

The above code is connection with Prompt dialogue, for connection without prompt see my another thread - without prompt

Step 4 Rebuild

 Include the below reference to your project(to global config file the line before where your client credentials is configured) and change the .Net framework to 4.6.1 and rebuild 

"ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12"

for More details on it refer to my another thread here 


Step 5 Rebuild Your code and run it you will be prompted with sign in page enter your credentials


Step 5 Press on Accept


 And Your are done


You can have a look at my code here : My Sample Code

Inspired By : Nishant Rana's Weblog

Happy Coding and CRMing 😊

SOURCE : mscrm.com

Dynamics CRM V9 / D365 connection Error Console or Custom Web Application

Last Night I Created a new Organisation and Connected it with console app an then I faced a strange issue in CRM v9 while connecting to Org Service with D365 through web API. It was perfectly working before that. If any one faces the below issue then try the solution given below.

Issue : Connection to CRM V9 / D365 from console application or Custom Web application failed with exception

Error Observed:

Message : "One or more errors occurred." 
Source : "mscorlib"





ROOT CAUSE:

Its all because of the latest update in the Microsoft TSL(Transport Security Layer) Protocol in SDK assemblies..Microsoft allowed the TSL connection 1.0  and 1.1 for the browsers or client to connect the CRM org.Now Microsoft will support only TSL 1.2 or above going forward(Reference) . If you are connecting your org with the old version of plugin registration tool , then you may face this issue

SOLUTION:

Include the below reference to your project(to global config file the line before where your client credentials is configured) and change the .Net framework to 4.6.1 and rebuild 

"ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12"

Code Snippet :

//Create an HTTP client to send a request message to the CRM Web service.
                using (HttpClient httpClient = new HttpClient(messageHandler))
                {
                    //Specify the Web API address of the service and the period of time each request
                    // has to execute.
                    httpClient.BaseAddress = new Uri(serviceUrl);
                    httpClient.Timeout = new TimeSpan(0, 2, 0);  //2 minutes

                 
                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

                    //Send the WhoAmI request to the Web API using a GET request.
                    var response = httpClient.GetAsync("api/data/v9.0/WhoAmI",
                            HttpCompletionOption.ResponseHeadersRead).Result;

                    if (response.IsSuccessStatusCode)
                    {
                        //Get the response content and parse it.
                        JObject body = JObject.Parse(response.Content.ReadAsStringAsync().Result);
                        Guid userId = (Guid)body["UserId"];
                        Console.WriteLine("Your system user ID is: {0}", userId);
                    }
                    else
                    {
                        Console.WriteLine("The request failed with a status of '{0}'",
                               response.ReasonPhrase);
                    }
                }

Happy Coding 😊

SOURCE : https://community.dynamics.com

Getting Started Free Trial - Live Assist for Microsoft Dynamics 365

Providing exceptional customer experience is the new competitive advantage. CaféX Live Assist™ for Microsoft Dynamics 365 enables personalised, omnichannel customer engagement that will delight your customers and improve your agents' productivity.
Hosted in the Azure cloud, the combined solution embeds real-time customer interaction within the Unified Service Desk and web clients for Dynamics 365. The immersive solution extends in-app live assistance to customers, who can interact with service representatives via text, co-browsing, bot escalation and more.
With CaféX Live Assist and Dynamics 365 tightly integrated, you can:
o   Proactively engage with chat
o   Problem solve faster with co-browse and bots
o   Ensure a 360-degree view throughout customers' journeys
o   Reduce operating costs and increase online sales
o   Deliver best-in-class digital experiences based on customers' unique preferences including mobile and web channels.

Prerequisites

The prerequisites for  link Live Assist to Microsoft Dynamics 365 Customer Engagement  include:
o   An instance of Dynamics 365 Customer Engagement (Online)
    • You can request a trial of Dynamics 365 for Customer Engagement here

Setting Up Live Assist for Microsoft Dynamics 365

Step 1 - Validate / Promote your Current User to Admin 
1) Login into Your Microsoft D365 Account and navigate to Security Under Settings





2) Go to Users 




3) Select your current user and click on the ribbon button to Promote To Admin 


4) Click on OK 
  

Step 2 - Configure Live Assist for Dynamics 365

Navigate to Settings and then click on Dynamics Marketplace  


A popup will open type live in search box and you will see the below screen click on Free trial  


Validate the information and click on continue button by accepting the terms and condition


Select your organisation and press on Agree button to agree Microsoft Legal stuff 




On setup Live assist page validate the Dynamics 365 Instance page, enter your email address , accept cafex terms and condition and press on Submit


This configures the Live Assist on the specified Dynamics 365 Instance and also sends the email to the email id specified.


Step 3 - Login into Live assist Admin Center

After some time you will get an email confirmation on your provide email address once your live assist environment is configured 


Press on to login Button 


Enter and validate the details and Click on Confirm and Authorise


Click on Accept Button 


Select with the option for I wish to Begin my trial


Now you will be redirected to your Dashboard of the admin center.


Your are done with setting up Live Assist for Microsoft Dynamics 365

Click on to Get Started button to get started with Live assist




Happy CRMing 😊
Learn more