Overview

The GoTo product SDKs for .NET are Software Development Kits for the GoTo product REST APIs exposing the API calls as C# methods. They are available in source and binary formats and provide you with an easy and fast way to integrate your .NET applications with the GoTo products. Currently we provide the following SDKs:

  • GoToMeeting.NET - SDK for the GoToMeeting REST API.
  • GoToWebinar.NET - SDK for the GoToWebinar REST API.
  • GoToTraining.NET - SDK for the GoToTraining REST API.
  • GoToCoreLib.NET - Core library exposing methods to authenticate users and authorize the implementing project for access to the authenticated users' GoTo product account.

NOTE: The SDKs do NOT support: 

  • GoToAssist Service Desk
  • GoToAssist Remote Support
  • GoToAssist Corporate
  • GoToAssist SeeIt
  • Admin
  • SCIM

The available SDKs are licensed under the SDK License Agreement.

Requirements

All SDKs require .NET Framework 4.0 or higher and are dependent upon Json.NET by James Newton-King.

Installation

1. Install from the NuGet Gallery

All SDKs are available as packages on the NuGet gallery. To install them use the Package Manager Dialog or run from the Package Manager Console:

PM> Install-Package LogMeIn.GoToMeeting.NET
PM> Install-Package LogMeIn.GoToWebinar.NET
PM> Install-Package LogMeIn.GoToTraining.NET
PM> Install-Package LogMeIn.GoToCoreLib.NET

Each of the above commands will install the respective SDK and the Json.NET dependency.

2. Direct download

File Description File Size Download Link MD5 Checksum
GoTo Core Library   
GoTo Core Library .NET SDK version 2.1.0 binaries 247 KB GoToCoreLib.NET-SDK-2.1.0-bin.zip 18c723936745ae81ceb04788e5ffa282
GoTo Core Library .NET SDK version 2.1.0 sources 15 KB GoToCoreLib.NET-SDK-2.1.0-src.zip 2365e020d803c8212e1d99f4d590680e
GoTo Core Library .NET SDK version 2.1.0 documentation 89 KB GoToCoreLib.NET-SDK-2.1.0-doc.zip 7f5e640848192064297d312de0a670da
GoToMeeting   
GoToMeeting .NET SDK version 1.1.0 binaries 268 KB GoToMeeting.NET-SDK-1.1.0-bin.zip 57d26ba092a54b26767fd93898e18546
GoToMeeting .NET SDK version 1.1.0 sources 53 KB GoToMeeting.NET-SDK-1.1.0-src.zip e2e8e7582660ec5c2a29bb6ed1612ff7
GoToMeeting .NET SDK version 1.1.0 documentation 501 KB GoToMeeting.NET-SDK-1.1.0-doc.zip dfc5ed979112875b8dc9c7c3cd6f3c17
GoToTraining   
GoToTraining .NET SDK version 1.1.0 binaries 257 KB GoToTraining.NET-SDK-1.1.0-bin.zip 12824d84f130f5bedd81fc38acb34553
GoToTraining .NET SDK version 1.1.0 sources 38 KB GoToTraining.NET-SDK-1.1.0-src.zip da4b6e83639c7d4c99c00566391143ec
GoToTraining .NET SDK version 1.1.0 documentation 283 KB GoToTraining.NET-SDK-1.1.0-doc.zip 4c85d79eda9bcc1d903e2aeb208ad5b7
GoToWebinar   
GoToWebinar .NET SDK version 2.1.0 binaries 280 KB GoToWebinar.NET-SDK-2.1.0-bin.zip e1df612cbb8ce43b918dea236816b9ef
GoToWebinar .NET SDK version 2.1.0 sources 82 KB GoToWebinar.NET-SDK-2.1.0-src.zip 2756e4075b0d101a4b21a1460e98de44
GoToWebinar .NET SDK version 2.1.0 documentation 699 KB GoToWebinar.NET-SDK-2.1.0-doc.zip 2e3312b56ef65d6012c563920ef8f53f

 

To use the binaries extract the respective binary archive and reference both contained DLLs from your own project.

To use the source code extract the respective source archive. The source code is distributed as a Visual Studio project which you can add to your solution (version 2010 or greater required). Once opened, please enable package restore during build by checking the box "Allow NuGet to download missing packages during build" under Tools -> Options -> NuGet Package Manager -> General, then build once so the dependency is downloaded.

Getting started

The following tips assume that you already have

  • a GoTo product account
  • a GoTo developer account
  • a consumer key for the respective GoTo product. You obtain this key after creating an app in your developer account.

If you do not, please refer to steps 1-3 of our Getting started guide.

To integrate the GoTo product into your application you need to install the homonymous SDK as well as the core library for authentication. For example, to develop for GoToWebinar, you need to install GoToWebinar.NET and GoToCoreLib.NET.

Before you make any calls you need to authenticate and obtain an access token. We support two different ways of authentication:

OAuth Flow

The first step is to generate the authorization URL where the user's browser will be directed. For this you'll need your app's consumer key and optionally the URL where the user will be redirected after the authorization to use your application:

 

using LogMeIn.GoToCoreLib.Api;
...
string consumerKey = "nMf9SaIASQ7Jy94Ehyq8GcyopR4MQSbp";
string consumerSecret = "loHznAxTuXGfFaMQ";
var oauth2Api = new OAuth2Api(consumerKey, consumerSecret);
string authUrl = oauth2Api.GetOAuth2AuthorisationUrl(); // => "https://api.getgo.com/oauth/v2/authorize?client_id=nMf9SaIASQ7Jy94Ehyq8GcyopR4MQSbp&response_type=code"

 

Then you need to direct your user's browser to this authorization URL. The user will now login with their GoTo product account credentials and click "Approve" to allow your application access to their product data. After approval, the user will be redirected and you need to capture this redirection URL in order to extract from it the OAuth flow response key. You will use the latter to obtain your access token, for example:

 

/* using a WinForms WebBrowser implementation */
void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    string responseKey = oauth2Api.GetResponseKey(e.Url); // => "a2647d1379894cc2001eb31689cacccc"
    var tokenResponse = oauth2Api.GetAccessTokenResponse(responseKey);
    var accessToken = tokenResponse.access_token; // => "RlUe11faKeyCWxZToK3nk0uTKAL"
} 

 

Direct Login

If your project is non-browser-based or unable to send the product user through the OAuth flow, you can use the Direct Login method as an alternative:

 

using LogMeIn.GoToCoreLib.Api;
...
string userName = "test@test.com";
string userPassword = "abcxyz";
string consumerKey = "nMf9SaIASQ7Jy94Ehyq8GcyopR4MQSbp";
string consumerSecret = "loHznAxTuXGfFaMQ";
var authApi = new OAuth2Api(consumerKey, consumerSecret);
var tokenResponse = authApi.directLogin(userName, userPassword);
var accessToken = tokenResponse.access_token; // => "RlUe11faKeyCWxZToK3nk0uTKAL"

 

Token Refresh

When you get an access token, the response also includes a refresh token. At the end of your access token's lifetime, you can send the refresh token in a call to obtain a new access token and refresh token pair:

 

var refreshToken = tokenResponse.refresh_token; // => "d1cp20yB3hrFAKeTokenTr49EZ34kTvNK"
tokenResponse = authApi.GetAccessTokenUsingRefreshToken(refreshToken)

 

Further calls

Once you have obtained your access token you can perform any other call passing in the access token as a parameter. For example, to list the starting times of all scheduled meetings:

 

using LogMeIn.GoToMeeting.Api;
...
var meetingsApi = new MeetingsApi();
var meetings = meetingsApi.getUpcomingMeetings(accessToken);
meetings.ForEach(m => Trace.WriteLine(m.startTime));