- Installation
- Additional Instructions for PubNub
- Basic Usage
- API Developer Guide
- Initialization 1. Set User Agent Header
- OAuth 2.0 Authorization 1. Authorize 1. Refresh 1. Logout
- Quick Recipes 1. Send SMS 1. Send Fax 1. Get Account Information 1. Get Address Book 1. Using x-http-method-override Header
- Message Store 1. Get Message Store 1. Get Message Store First ID 1. Update Message Status
- Subscription 1. Create Subscription
- Support
- Contributions
- License
Via NuGet
PM> Install-Package RingCentralSDK
This will download the Ring Central Portable Class Library into your project as well as the PubNub dependencies
PubNub will need to manually be installed in your project. Find the platform you are targeting at PubNub and follow the instructions to include the library in your project.
This SDK wraps the RingCentral Connect Platform API which is documented in the RingCentral Connect Platform Developer Guide. For additional information, please refer to the Developer Guide.
//import RingCentral SDK
using RingCentral;
//Initialize Ring Central Client
var ringCentral = new SDK("your appKey", "your appSecret", "Ring Central apiEndPoint", "Application Name","Application Version").GetPlatform();
ringCentral.SetUserAgentHeader("Application Name", "Application Version");
Response response = ringCentral.Authorize(userName, extension, password, true);
Response response = ringCentral.Refresh();
ringCentral.Logout();
Request request = new Request("/restapi/v1.0/account/~/extension/~/sms", jsonSmsString);
Response response = ringCentral.Post(request);
const string text = "Hello world!";
var byteArrayText = System.Text.Encoding.UTF8.GetBytes(text);
var attachment = new Attachment("test.txt", "application/octet-stream", byteArrayText);
var attachment2 = new Attachment("test2.txt", "text/plain", byteArrayText);
var pdfFile = File.ReadAllBytes("<PATH TO YOUR PDF>");
var attachment3 = new Attachment("<NAME OF YOUR PDF.pdf", "application/pdf", pdfFile);
var attachments = new List<Attachment> { attachment,attachment2, attachment3 };
var json = "{\"to\":[{\"phoneNumber\":\"<YOUR TARGET NUMBER>\"}],\"faxResolution\":\"High\"}";
Request request = new Request("/restapi/v1.0/account/~/extension/~/fax", json, attachments);
Response response = ringCentral.Post(request);
Request request = new Request("/restapi/v1.0/account/~");
Response response = ringCentral.Get(request);
Request request = new Request("/restapi/v1.0/account/~/extension/~/address-book/contact");
Response response = ringCentral.Get(request);
Request overRideRequest = new Request("/restapi/v1.0/account/~");
overRideRequest.SetXhttpOverRideHeader("GET");
Response overRideResponse = ringCentral.Post(overRideRequest);
Request request = new Request("/restapi/v1.0/account/~/extension/~/message-store");
Response response = ringCentral.Get(request);
var messageId = response.GetJson().SelectToken("records")[0].SelectToken("id");
var messageStatusJson = "{\"readStatus\": \"Read\"}";
Request request = new Request("/restapi/v1.0/account/~/extension/~/message-store/" + messageId, messageStatusJson);
Response response = ringCentral.Put(request);
Request request = new Request("/restapi/v1.0/account/~/extension/~/message-store/" + messageId, messageStatusJson);
request.SetXhttpOverRideHeader("PUT");
Response response = ringCentral.Post(request);
Request request = new Request("/restapi/v1.0/account/~/extension/~/message-store/" + messageId);
Response response = ringCentral.Delete(request);
RingCentral provides the ability to subscribe for event data using PubNub.
var subscription = new SubscriptionServiceImplementation(){ _platform = ringCentral};
subscription.AddEvent("/restapi/v1.0/account/~/extension/~/presence");
var response = subscription.Subscribe(null,null,null);
Alternatively you can set Event Filters by:
subscription.SetEvent(listOfEvents);
Where listOfEvents is a List containing each event to subscribe to.
var subscription = new SubscriptionServiceImplementation(){ _platform = ringCentral};
subscription.AddEvent("/restapi/v1.0/account/~/extension/~/presence");
var response = subscription.Subscribe(ActionOnNotification,ActionOnConnect,ActionOnError);
Note: You can assign the callback action for disconnect on initialization. Disconnect Action fired upon PubNub disconnect
var subscription = new SubscriptionServiceImplementation(){ _platform = ringCentral, disconnectAction = ActionOnDisconnect};
Or after initialization
subscription.disconnectAction = ActionOnDisconnect;
All callbacks must take only one parameter of type object. See below for proper casting on actions.
This will return an object that can easily be cast to a string or a JArray (Json.Net) Messages will be decrypted, if required, before being passed to Actions. See below for an example of JSON returned.
Use a JArray to grab a token
public void ActionOnMessage(object message) {
var ReceivedMessage = ((JArray)message).SelectToken("[0].body.changes[0].type");
}
Or string for other JSON parsing
public void ActionOnMessage(object message) {
var ReceivedMessage = message.ToString();
}
Use a JArray to grab a token.
public void ActionOnConnect(object message){
var receivedMessage = ((JArray)receivedMessage).SelectToken("[1]");
}
Or string for other JSON parsing
public void ActionOnConnect(object message) {
var ReceivedMessage = message.ToString();
}
Note: Disconnect messages are not deserializable JSON.
public void ActionOnDisconnect(object message) {
var receivedMessage = message.ToString();
}
Note: PubNub error messages are not deserializable JSON.
public void ActionOnError(object error) {
var receivedMessage = message.ToString();
}
This example provides some possible tokens for JSON parsing of PubNub Notification message
[
{
"event": "/restapi/v1.0/account/~/extension/111/message-store",
"body": {
"lastUpdated": "2015-10-10T21:28:43.094-07:00",
"changes": [
{
"newCount": 0,
"updatedCount": 1,
"type": "Fax"
},
{
"newCount": 2,
"updatedCount": 0,
"type": "SMS"
}
],
"extensionId": 1111
},
"uuid": "111-222-333-444",
"timestamp": "2015-10-11T04:28:51.821Z"
}
]
var response = subscription.Remove();
Note: If you provided a callback action for PubNub disconnect it will fire once during unsubscribe.
subscription.Unsubscribe();
var notificationMessage = subscription.ReturnMessage("notification");
var connectMessage = subscription.ReturnMessage("connectMessage");
var disconnectMessage = subscriptionS.ReturnMessage("disconnectMessage");
var errorMessage = subscription.ReturnMessage("errorMessage");
Project Repo
RingCentral Developer Site
RingCentral API Docs
RingCentral API Explorer
RingCentral GitHub Organization
For support using this SDK, please use the following resources:
Any reports of problems, comments or suggestions are most welcome.
Please report these on Github
RingCentral SDK is available under an MIT-style license. See LICENSE for details.
RingCentral SDK © 2015-2016 by RingCentral, Inc.