Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Anchor
    AblyChannel
    AblyChannel
    Ably Channel - Channels are the medium through which messages are distributed. Clients attach to channels to subscribe to messages, and every message published to a unique channel is broadcast by Ably to all subscribers. This messaging pattern is commonly called the https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern. You can read more about Ably Channels here.

  • Access Token - Ably’s authentication token required to establish a connection with Ably. You can learn more about this /wiki/spaces/FEED/pages/3248259146 here.

  • Client Library - Ably’s public open-source SDKs provided to clients to simplify the software development work required by users of Ably. More information is available here.

...

Inc drawio
custContentId
zoom1
simplefalse
inComment0
custContentId3247997270
pageId3172204626
3247997270lboxtrue
diagramDisplayNamematch-state-platform.drawio
contentVer2
baseUrlhttps://geniussports.atlassian.net/wiki
diagramName1622725815413-match-state-platform.drawio
pCenter0
aspectZezcWV2CNMKGn_PsqsVd 1
width621
linksauto
tbstyletop
isUpload1
height166

...

Before you can start using the code below you will need to get the following secrets from Genius Sports Support Team:

  • Client ID

  • Client Secret

  • API Key

1. Obtaining an Access Token for the Match State Platform API

First, you will need to get an access token for the Match State Platform API.

...

languagec#

...

To access uat environment, add .uat to the URLs documented in the section below:
https://uat.auth.api.geniussports.com/oauth2/token
https://platform.uat.matchstate.api.geniussports.com/

...

api/v1

1. Obtaining an Access Token for the Match State Platform API

First, you will need to get an access token for the Match State Platform API.

Code Block
languagec#
var url = "https://auth.api.geniussports.com/oauth2/token";
var body = new Dictionary<string, string> {
	{"grant_type", "client_credentials"},
	{"client_id", "CLIENT_ID"},
	{"client_secret", "CLIENT_SECRET"}
};

var httpClient = new HttpClient();
var response = await httpClient.PostAsync(url, new FormUrlEncodedContent(body));
var responseBody = await response.Content.ReadAsStringAsync();

var tokenEnvelope = JsonConvert.DeserializeObject<JObject>(responseBody);
var accessToken = tokenEnvelope["access_token"].ToString();

2. Consuming the Fixture Schedule

...

Info

Please refer to Authenticating against Genius Sports APIs for more information about authenticating against our API’s in both the User Acceptance Testing and Production environments.

2. Consuming the Fixture Schedule

To be able to connect to Ably channel you will need to know the Fixture ID. You can get the fixtures with available feeds using the Match State Platform Schedule API.

...

Important: The FIXTURE_ID should be scheduled in a period of 7 between 5 days in the past and 2 days in the future, by the Match State Platform Schedule API in order for the Access Control API to return a channel & token.

...

Are there any limitations around the number of open Ably connections?

Customers should reuse the same Ably Realtime instance (which is representation of represents a single connection to Ably) to subscribe on multiple channels. We couldn't identify any reasons to create multiple connections other than the hard limit of inbound messages per connection which is 100 messages per second and the hard limit of 200 channels per connection. If your subscription fits into these limitations, you do not need to deal with the complexity of managing multiple Ably Realtime instances but can only use a single connection. Currently an Ably token which is issued by Genius APIs, only allows subscribing to a single channel and thus consuming data for a single fixture. Looking forward, this limitation would be mitigated by issuing tokens that allow access to multiple channels but until then, there is no customer specific limit for the number of connections that can be established. There is a hard limit of inbound messages per connection which is 100 messages per second.

Are there any limitations around the number of channel subscriptions per connection?

...

We do not recommend subscribing to a channel too much before fixture start time. We suggest 3 hours before the kickoff should be a sensible interval of time to create your subscription. In case you start creating subscriptions for games that will start in a few days, you will start hitting the limits for maximum channels per connection. Creating a subscription to channel with no publisher will not result in an error. Please keep in mind that each Ably access token has expiration time and needs to be refreshed so if you create a subscription too early, you will have to refresh the token multiple times.