...
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.Anchor AblyChannel AblyChannel 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 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
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.
...
language | c# |
---|
...
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/
...
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 | ||
---|---|---|
| ||
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.