RingCentral access tokens and refresh tokens have expiration times associated with them. By default, access tokens expire in 1 hour and refresh tokens expire in 1 week. This means after 1 hour, your app will need to refresh the access token using the refresh token. If your app is not performing token refresh, it may stop being authorized after 1 hour.
Official RingCentral SDKs will perform auto-refresh if your app continues to make API calls. The new C# Client SDK will also auto renew as long as your service is running.
Are you using a SDK and, if so, which one? If not, what language are you using? Our SDKs are listed here:
https://developers.ringcentral.com/library/sdks.htmlMore information on OAuth token refresh is available on this here:
https://developers.ringcentral.com/api-docs/latest/index.html#!#OauthTokens.html
Hello Team,
Apologies for the late reply on this thread. We are using c# SDK for subscribing for incoming sms event . The subscription works as long as the incoming smses are being received . If there is no sms received for some time let's say an hour and later a new sms is received there is no notification coming. Once we restart the service it starts working again. Can you please help as we were assuming that in sdk we don't need to refresh.
We are using the below code
private SDK sdk; private SubscriptionService subscription;
public void SetupSub()
{
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "SetupSub", "*********************************Function Started*************************");
string appsecret = ConfigurationManager.AppSettings["appsecret"];
string appkey = ConfigurationManager.AppSettings["appkey"];
string userphonenumber = ConfigurationManager.AppSettings["userphonenumber"];
string password = ConfigurationManager.AppSettings["password"];
string defaultendpoint = ConfigurationManager.AppSettings["apiendpoint"];
string fromnumber = ConfigurationManager.AppSettings["fromnumber"];
sdk = new SDK(appkey,appsecret, defaultendpoint, "IncomingSMSapp", "1.0.0");
sdk.Platform.Login(userphonenumber, "", password, true);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information,"Info", "Subscription successful");
subscription = sdk.CreateSubscription();
subscription.EventFilters.Add("/restapi/v1.0/account/~/extension/~/message-store/instant?type=SMS");
var connectCount = 0;
subscription.ConnectEvent += (sender, args) => {
connectCount += 1;
// Console.WriteLine(args.Message);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Connected");
};
var messageCount = 0;
subscription.NotificationEvent += (sender, args) => {
messageCount += 1;
// Console.WriteLine(args.Message);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Notification received," + args.Message.ToString());
var obj = JObject.Parse(args.Message.ToString());
string messagecontent= obj.AsJEnumerable()["body"]["subject"].ToString();
messagecontent = messagecontent.Replace("#", "%23");
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Notification received, message" + messagecontent);
string from=obj.AsJEnumerable()["body"]["from"]["phoneNumber"].ToString();
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Notification received, From" + from);
string to = obj.AsJEnumerable()["body"]["to"][0].ToString().Split(':')[1].Split('"')[1];
from = from.Remove(0, 1);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Notification received, To" + to);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Notification received, To" + from);
};
var errorCount = 0;
subscription.ErrorEvent += (sender, args) => {
errorCount += 1;
// Console.WriteLine(args.Message);
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Incoming SMS Error received," + args.Message);
};
subscription.Register();
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Subscribed successfully");
Logger.TraceLog(System.Diagnostics.TraceEventType.Information, "Info", "Thread", "Waiting for incoming sms events");