Skip to main content
The First Step
May 9, 2019
Question

Authorize takes forever with password flow

Hey


I use nuget RingCentral.Net to connect to API and Password flow with sandbox Server only platform


When I connect with console application with the following code I succeed (get token and get call logs)


var rc = new RestClient(Config.Instance.clientId, Config.Instance.clientSecret, Config.Instance.server); 
var token = rc.Authorize(Config.Instance.username, Config.Instance.extension, Config.Instance.password).Result; 


When I try to connect to api with an application (ASP.NET MVC) that is on IIS the authorize takes forever, without exception

2 replies

Employee
May 9, 2019
Hi, it might be deadlock issue.

And it is a common C# async programming issue: https://medium.com/rubrikkgroup/understanding-async-avoiding-deadlocks-e41f8f2c6f5d

In short, do not mixed async code and sync code.  If your app is async overall, you should not use .Result.
The First Step
May 14, 2019
Thanks, call log work perfect but when i want to send sms like

static async Task Main(string[] args)
{
using (var rc = await Login()) { await SendSms(rc); } }
private static async Task<RestClient> Login()
{
    var rc = new RestClient("***", "*********", "https://platform.devtest.ringcentral.com/");
    await rc.Authorize("+*****", "101", "*****");
    return rc;
} public static async Task SendSms(RestClient rc)
{
    var sms = new CreateSMSMessage()
    {
        @from = new MessageStoreCallerInfoRequest() { phoneNumber = "+****" },
        to = new[] { new MessageStoreCallerInfoRequest() { phoneNumber = "+****" }, },
        text = "test yaacov"
    };
     var resTask = await rc.Restapi().Account().Extension("101").Sms().Post(sms);
}
The Authorize return token but post sms get exception 
System.ObjectDisposedException: 'Cannot access a disposed object.
Object name: 'System.Net.Http.StringContent'.'
When i run same details with Api reference "try it out" button it work fine