spate documentation
TRANSCRIPT
![Page 1: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/1.jpg)
Spate DocumentationRelease 0.1
Joe Alcorn
November 18, 2014
![Page 2: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/2.jpg)
![Page 3: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/3.jpg)
Contents
1 API 31.1 API version 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Javascript Client Library 52.1 Basic Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 What is spate? 7
4 Your first application 9
5 Libraries 11
6 Support 13
HTTP Routing Table 15
i
![Page 4: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/4.jpg)
ii
![Page 5: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/5.jpg)
Spate Documentation, Release 0.1
Contents:
Contents 1
![Page 6: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/6.jpg)
Spate Documentation, Release 0.1
2 Contents
![Page 7: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/7.jpg)
CHAPTER 1
API
1.1 API version 1
Version 1 of the API is still in development and subject to changes.
Note: You’ll only need to read this documentation if you’re interacting with the API personally. If you’re using alibrary you should refer to its own documentation. See Libraries.
1.1.1 Authentication
Authenticating the push endpoint is simple once you know how.
You take the application’s secret key and compute a hmac-sha256 signature of the payload’s message. If you’ve neverdone that before, don’t worry, it sounds more complicated than it is. Chances are there is a library to do it for you inyour language of choice, if it’s not already in the standard library!
Here’s an example of what I mean:
>>> from hashlib import sha256>>> import hmac>>> secret = ’ssshh’>>> message = ’Hello World!’>>> signature = hmac.new(secret, message, sha256).hexdigest()>>> print signature8650decb780ea45364e7a6f9f8cbb3c87f75777910366359ae0c4aeca1db763a
1.1.2 Endpoints
All API requests are made over HTTPS, to a base URL of https://api.gorealti.me
Data must be sent as JSON, with a Content-Type: application/json header.
Push
POST /v1/push
Status Codes
• 202 – Ok
3
![Page 8: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/8.jpg)
Spate Documentation, Release 0.1
• 400 – Request data incorrect or missing
• 401 – Invalid signature
Request data
Json Parameters
• app (string) – app key
• message (string) – data to push to client
• signature (string) – signature created with app secret, see Authentication
• channels (list) – list of channels to push message to
Response
HTTP/1.1 202 OKVary: AcceptContent-Type: application/json
{"accepted": true
}
4 Chapter 1. API
![Page 9: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/9.jpg)
CHAPTER 2
Javascript Client Library
2.1 Basic Usage Example
var client = new Spate(’<APP_KEY>’)client.on(’my_channel’, function(data) {
alert(data.message);});
class Spate(app_key, verbose)
Arguments
• app_key (string) – Your application key (not secret!)
• verbose (boolean) – Log messages to console if true (default false)
on(channel, callback)Calls callback with message data when a message is pushed down channel. Subscription to thatchannel will be added if it doesn’t already exist.
See Callbacks
Arguments
• channel (string) – The name of a channel
• callback (function) – Function to call with message data
off(channel)Removes callback and unsubscribes from channel
Arguments
• channel (string) – The name of a subscribed channel
2.2 Callbacks
Callbacks should accept one param, which will be an object structured like so.
{"type": "message","channel": "my_chan","message": "Hello World!",
5
![Page 10: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/10.jpg)
Spate Documentation, Release 0.1
"received": 1399841133,}
6 Chapter 2. Javascript Client Library
![Page 11: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/11.jpg)
CHAPTER 3
What is spate?
At it’s core, spate is a service that aims to simplify the use of realtime technologies in your applications.
By removing the need to manage servers, write tons of boilerplate code and then maintain both of these, spate is theeasiest way to integrate realtime tech available.
By consuming our simple HTTP-based API and making use of a javascript library you’re able to get up and runningwith under 10 lines of code!
7
![Page 12: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/12.jpg)
Spate Documentation, Release 0.1
8 Chapter 3. What is spate?
![Page 13: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/13.jpg)
CHAPTER 4
Your first application
Before you’re able to do anything on spate you must create an application. This is a straightforward process so thisguide won’t cover it in detail.
First you’ll need to register a user account here. Once that’s done you’re able to create an application on the newapplication page.
After creating your application you’ll be taken to the application dashboard. There’s not much you can do there atpresent, but that’ll change shortly. For now all we need is the application key & secret anyway.
Warning: Your application secret must absolutely always remain secret. Compromised secrets can be regeneratedon the application dashboard.
9
![Page 14: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/14.jpg)
Spate Documentation, Release 0.1
10 Chapter 4. Your first application
![Page 15: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/15.jpg)
CHAPTER 5
Libraries
Some recommended libraries are listed below for each language. Don’t see a library for a language you use? Why notwrite one? Our API is super simple to use!
• Python (docs)
If you’re unable to find a library that takes your fancy why not write one using the API documentation
11
![Page 16: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/16.jpg)
Spate Documentation, Release 0.1
12 Chapter 5. Libraries
![Page 17: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/17.jpg)
CHAPTER 6
Support
If you are unable to find what you’re looking for in these docs please email [email protected].
13
![Page 18: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/18.jpg)
Spate Documentation, Release 0.1
14 Chapter 6. Support
![Page 19: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/19.jpg)
HTTP Routing Table
/v1POST /v1/push, 3
15
![Page 20: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/20.jpg)
Spate Documentation, Release 0.1
16 HTTP Routing Table
![Page 21: Spate Documentation](https://reader033.vdocuments.site/reader033/viewer/2022061100/629a78accaf4fe4f60206b1c/html5/thumbnails/21.jpg)
Index
Ooff() (built-in function), 5on() (built-in function), 5
SSpate() (class), 5
17