{"_id":"56c50633bdcde80d004986bd","editedParams":true,"githubsync":"","parentDoc":null,"version":{"_id":"56c50626bdcde80d00498635","project":"54774d9af3736008009e9e0e","__v":10,"createdAt":"2016-02-17T23:45:42.869Z","releaseDate":"2016-02-17T23:45:42.869Z","categories":["56c50628bdcde80d00498636","56c50628bdcde80d00498637","56c50628bdcde80d00498638","56c50628bdcde80d00498639","56c50628bdcde80d0049863a","56c50628bdcde80d0049863b","56c50628bdcde80d0049863c","56c50628bdcde80d0049863d","56c50628bdcde80d0049863e","56c50628bdcde80d0049863f","56c50628bdcde80d00498640","56c50628bdcde80d00498641","56c50628bdcde80d00498642","56c50628bdcde80d00498643","56c50628bdcde80d00498644","56c50628bdcde80d00498645","56c50628bdcde80d00498646","56c50628bdcde80d00498647","56c506a018f0c90d002808de","56c6b0baf795cf0d003ec13e","56fe58eb5a08190e00085149","571764513cf2960e0009a635","571fc008ffbc6a2000b25bb5","5739ca371f4b740e00b06e09","577522f197a3830e004bcc1b","57753d5ffecd260e00d86ce6","57adb71efaa7a10e004495b6"],"is_deprecated":true,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"API v1.1","version_clean":"0.1.1","version":"0.1.1"},"__v":0,"editedParams2":true,"user":"54774c47f3736008009e9e0c","category":{"_id":"56c50628bdcde80d00498645","version":"56c50626bdcde80d00498635","__v":1,"project":"54774d9af3736008009e9e0e","pages":["56c50633bdcde80d004986b7","56c50633bdcde80d004986b8","56c50633bdcde80d004986b9","56c50633bdcde80d004986ba","56c50633bdcde80d004986bb","56c50633bdcde80d004986bc","56c50633bdcde80d004986bd","56c50633bdcde80d004986be","56c50633bdcde80d004986bf"],"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-05-21T13:12:14.654Z","from_sync":false,"order":19,"slug":"channels","title":"Channels"},"project":"54774d9af3736008009e9e0e","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-05-22T11:18:51.120Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"name":"","code":"{\n  \"author\": {\n    \"admin\": 8\n  },\n  \"created_at\": \"2016-03-17T20:14:45.800039Z\",\n  \"id\": 54,\n  \"action\": \"custom\",\n  \"payload\": {\n    \"message\": \"Hello Witchers!\",\n    \"type\": \"welcome\"\n  },\n  \"metadata\": {\n    \"type\": \"message\"\n  }\n}","language":"json","status":200},{"code":"{\n  \"detail\": \"No such API Key.\"\n}","status":403,"language":"json"},{"language":"json","code":"{\n  \"detail\": \"Not found\"\n}","status":404},{"status":204,"language":"json","code":"// Polling times out after 5 minutes and returns 204 NO CONTENT response"}]},"settings":"56c50c06d1b8770d00922288","examples":{"codes":[{"name":"","code":"curl -X GET \\\n-H \"X-API-KEY: <API_KEY>\" \\\n-H \"X-USER-KEY: <USER_KEY>\" \\\n\"https://api.syncano.io/v1.1/instances/<instance>/channels/<channel_name>/poll/\"","language":"curl","gist":"47d76024a9729f415058"},{"code":"import syncano\nfrom syncano.models import Channel\n\ndef callback(message=None):\n    print message.payload\n    return True\n\nsyncano.connect(api_key=\"API_KEY\", instance_name=\"INSTANCE_NAME\")\n\nchannel = Channel.please.get(name=\"CHANNEL_NAME\")\n\nchannel.poll(callback=callback)\n\n'''\nIf you are polling for a certain room, include the room parameter\nin the channel.poll function like this\n\nchannel.poll(callback=callback, room=\"room_name\")\n'''\n","language":"python"},{"language":"javascript","code":"var Syncano = require(\"syncano\");\nvar connection = Syncano({apiKey: \"API_KEY\"});\nvar Channel = connection.Channel;\n\nvar poll = Channel.please().poll({ instanceName: 'test-instace', name: 'test-class' });\n\npoll.on('start', function() {\n  console.log('poll::start');\n});\n\npoll.on('stop', function() {\n  console.log('poll::stop');\n});\n\npoll.on('message', function(message) {\n  console.log('poll::message', message);\n});\n\npoll.on('custom', function(message) {\n  console.log('poll::custom', message);\n});\n\npoll.on('create', function(data) {\n  console.log('poll::create', data);\n});\n\npoll.on('delete', function(data) {\n  console.log('poll::delete', data);\n});\n\npoll.on('update', function(data) {\n  console.log('poll::update', data);\n});\n\npoll.on('error', function(error) {\n  console.log('poll::error', error);\n});"}]},"method":"get","auth":"required","params":[{"_id":"555ddf718ab3180d001ac55f","ref":"","in":"path","required":true,"desc":"Instance name","default":"","type":"string","name":"instance_name"},{"_id":"555e12ab06dfec0d00d39063","ref":"","in":"path","required":true,"desc":"Channel name","default":"","type":"string","name":"channel_name"},{"_id":"555f1b5b750e240d00cc314a","ref":"","in":"query","required":false,"desc":"Id of a previous notification message that was sent to this Channel.","default":"","type":"int","name":"last_id"},{"_id":"555f1b95df54680d0018032d","ref":"","in":"query","required":false,"desc":"Room name. Shouldn't be passed if Channel type is `default`. If Channel is of `separate_rooms` type then room name should be added.","default":"","type":"string","name":"room"}],"url":"/instances/:instance_name/channels/:channel_name/poll/"},"isReference":true,"order":6,"body":"A call to this endpoint allows you to poll for notification messages that are sent to a Channel with a given name.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"You can read more about polling [here](http://docs.syncano.com/docs/realtime-communication#section-polling-for-notification-messages). \\nThis is how you can play around with polling in the API Explorer:\\n1. Open the \\\"Channel - publish\\\" API Explorer page in one browser tab\\n2. Open the \\\"Channel - poll\\\" API Explorer page in a second browser tab\\n3. Publish the first message in a tab from step 1. You'll get a response with an `id`\\n4. Type in that id in the `last_id` field in the \\\"Channel - poll\\\" tab and press \\\"Try it!\\\". You will see that you have no response and our API Explorer is waiting for it.\\n5. Repeat step 3\\n6. You should get a response in the \\\"Channel - poll\\\" tab!\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Timeout\",\n  \"body\": \"Polling time out is set to 5 minutes and a 204 NO CONTENT response is returned if not message is received within 5 minutes window afterwards (another `poll` request must be sent after that).\"\n}\n[/block]","excerpt":"","slug":"channels-poll","type":"endpoint","title":"Channels - poll"}

getChannels - poll


Definition

{{ api_url }}{{ page_api_url }}

Parameters

Path Params

instance_name:
required
string
Instance name
channel_name:
required
string
Channel name

Query Params

last_id:
integer
Id of a previous notification message that was sent to this Channel.
room:
string
Room name. Shouldn't be passed if Channel type is `default`. If Channel is of `separate_rooms` type then room name should be added.

Examples


Result Format


Documentation

A call to this endpoint allows you to poll for notification messages that are sent to a Channel with a given name. [block:callout] { "type": "info", "body": "You can read more about polling [here](http://docs.syncano.com/docs/realtime-communication#section-polling-for-notification-messages). \nThis is how you can play around with polling in the API Explorer:\n1. Open the \"Channel - publish\" API Explorer page in one browser tab\n2. Open the \"Channel - poll\" API Explorer page in a second browser tab\n3. Publish the first message in a tab from step 1. You'll get a response with an `id`\n4. Type in that id in the `last_id` field in the \"Channel - poll\" tab and press \"Try it!\". You will see that you have no response and our API Explorer is waiting for it.\n5. Repeat step 3\n6. You should get a response in the \"Channel - poll\" tab!" } [/block] [block:callout] { "type": "info", "title": "Timeout", "body": "Polling time out is set to 5 minutes and a 204 NO CONTENT response is returned if not message is received within 5 minutes window afterwards (another `poll` request must be sent after that)." } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}