question

murylo-batista14518 avatar image
murylo-batista14518 asked ·

code 404 (Not Found) at c#

I can't get any of the API calls to answer me. it always returns as 404 Not found 
Im using the nugget C# library

im using the following code

using RingCentral; 

####

  string appKey = "MYKEY";
            string appSecret = "MYSECRET";
            string phoneNumber = "+15178853031";
            string password = "MYPASSWORD";
            string country = "44";
            rc = new RestClient(appKey, appSecret);

            await rc.Authorize(phoneNumber, "101", password);

            var tokenString = rc.token.access_token;

            var extension = rc.Restapi("v1.0").Account("15178853031").Extension("101");

            var requestBody = new
            {
                country = new { id = country },
                from = new { phoneNumber = phoneNumber },
                to = new object[] { new { phoneNumber = "+4407922204537" } },
                playPrompt = "true",

            };

            var response = await extension.RingOut().Post(requestBody);


what I get is that :
Call failed with status code 404 (Not Found): POST https://platform.devtest.ringcentral.com/restapi/v1.0/account/15178853031/extension/101/ring-out

even using the API page to TRY now, returns that if i set the values for Account and Extension.

any ideas?
General Topic
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Tyler Liu avatar image
Tyler Liu answered ·
The issue is accountId and extensionId. If you don't know what they are, use "~" as ID. "~" means the currently authorized user.

And to get the IDs, you can rc.Restapi("v1.0").Account("~").Extension("~").Get() and check the response. ID is not number, 101 is extension number.



9 comments
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

You need to add await at the beginning of this line. I forgot that.  Everything HTTP Call is async. So you need to await them to get something meaningful.
1 Like 1 ·
using ~ dont work either, it return this:

{"Call failed with status code 400 (Bad Request): POST https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/ring-out"}

it does successfully retrieve a token if you are wondering.

 
0 Likes 0 ·
this method
rc.Restapi("v1.0").Account("~").Extension("~").Get() 
returns this

Id = 79, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
0 Likes 0 ·
Yeah but that also returns

{"Call failed with status code 404 (Not Found): GET https://platform.devtest.ringcentral.com/restapi/V1.0/account/~/extension/~"}

for this method

  var id = await rc.Restapi("V1.0").Account("~").Extension("~").Get();
0 Likes 0 ·
V1.0 should be v1.0
0 Likes 0 ·
Show more comments
Tyler Liu avatar image
Tyler Liu answered ·
Do you mind trying something new? 
https://medium.com/ringcentral-developers/new-ringcentral-sdk-for-net-a43417b2538c

We are going to announce it today.

It has way better exception reporting mechanism.  Try it and you will know the root cause of "{"Call failed with status code 400 (Bad Request)"
3 comments
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

gonna go to lunch and have a look at that after that.


0 Likes 0 ·
What version of .Net is that aimed at?

error:

 Could not install package ' RingCentral.Net 0.6.1'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information,
0 Likes 0 ·
It is .NET standard 2.0.   https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-0/

You need to use 
  • .NET Framework 4.6.1
0 Likes 0 ·
murylo-batista14518 avatar image
murylo-batista14518 answered ·
No solution so far, guess I will have to develop for nextiva instead.
T_T
2 comments
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Both the new and the old package can solve the issue.

Please read my comments above and get the IDs issue fixed. As I said if you don't know the IDs, just use "~" as the ID. 
0 Likes 0 ·
like i said, using ~ wont work. give error 404 not found.
0 Likes 0 ·
Phong Vu avatar image
Phong Vu answered ·
Create a .Net Core app (Core 2.1) and copy paste this code and try it. It should work

using System;
using System.Threading.Tasks;
using RingCentral;
namespace Call_Ringout
{
    class Program
    {
          const string RECIPIENT = "<ENTER PHONE NUMBER>";
          const string RINGCENTRAL_CLIENTID = "<ENTER CLIENT ID>";
          const string RINGCENTRAL_CLIENTSECRET = "<ENTER CLIENT SECRET>";
          const string RINGCENTRAL_USERNAME = "<YOUR ACCOUNT PHONE NUMBER>";
          const string RINGCENTRAL_PASSWORD = "<YOUR ACCOUNT PASSWORD>";
          const string RINGCENTRAL_EXTENSION = "<YOUR EXTENSION, PROBABLY ";
          static void Main(string[] args)
          {
              call_ringout().Wait();
          }
          static private async Task call_ringout()
          {
              RestClient rc = new RestClient(RINGCENTRAL_CLIENTID, RINGCENTRAL_CLIENTSECRET, false);
              await rc.Authorize(RINGCENTRAL_USERNAME, RINGCENTRAL_EXTENSION, RINGCENTRAL_PASSWORD);
              if (rc.token.access_token.Length > 0)
              {
                  var parameters = new MakeRingOutRequest();
                  parameters.from = new MakeRingOutCallerInfoRequestFrom { phoneNumber = RINGCENTRAL_USERNAME };
                  parameters.to = new MakeRingOutCallerInfoRequestTo {  phoneNumber = RECIPIENT } ;
                  parameters.playPrompt = false;
                  var resp = await rc.Restapi().Account().Extension().RingOut().Post(parameters);
                  Console.WriteLine("Call Placed. Call status" + resp.status.callStatus);
              }
          }
      }
}

Remember to install the RingCentral SDK using NuGet package RingCentral.Client (3.0.0) SDK

Hope this helps,
1 comment
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Thank you! can i ask you where exactly did you take MakeRingOutRequest() documentation from? i haven't
 seen it anywhere and that looks like solved the issue.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.