Child pages
  • GetChannel
Skip to end of metadata
Go to start of metadata

Description

The GetChannel API allows the Account Owner to get the details of an already created channel for push notifications. The GetChannel operation may only be called over HTTPS.

 What is a Channel?

Apstrata allows a developer to send push notifications to iOS applications by abstracting the Apple Push Notification Service. Similarly, it allows a developer to send push notifications to Android applications by abstracting the Firebase Cloud Messaging HTTP protocol. In other words, apstrata serves as a push notifications provider for iOS and Andriod applications.

Apstrata makes it really simple to enable push notifications for your applications through a REST API. Here are the steps that need to be taken for this purpose:

  1. Create a configuration for a "mobile application" using the "AddCertificate" API (upload the required certificate and password as both Apple and Google require that push notifications requests be authenticated).
  2. Create channels and subscribe device tokens to them (every device has a unique token or identifier) or push notifications to a run-time specified set of devices ("ad-hoc")
  3. Send notifications to a channel (push notifications will be sent to all devices subscribed in the channel) or to the ad-hoc set of tokens

Specific Request Parameters

(Refer to Common Request Parameters)

Name

Description

Required

Default

Possible Values

apsdb.store

The name of the store in which the channel was created

No

DefaultStore

 

channelIdA unique identifier for the channelYes  

Specific Response Elements

(Refer to Common Response Elements)

The following specific "result" element is a child of the common root element "response" and a sibling of the common "metadata" element:

{
	"result": {
		"channel": {
			"channelId": "The id of the channel",
			"platform": "The platform of the channel",
			"deviceTokens": [an array of valid device tokens as strings],
			"invalidDeviceTokens": [an array of invalid device tokens as strings]
		}
	}
}

 

Specific Logical Errors

(Refer to Common Logical Error Codes)

Error

Description

Status Code

INVALID_STORE_NAME

Store name is invalid.

400

STORE_NOT_FOUND

The store was not found

404

PARAMETER_REQUIREDOne of the required parameters is missing400
INVALID_REQUESTThe request is made over HTTP and not HTTPS400
PERMISSION_DENIEDThe request is made by a regular user and not by the account owner403
DOCUMENT_NOT_FOUNDThe channel does not exist404

 

Examples

Sample Request

Request URL: http://sandbox.apstrata.com/apsdb/rest/[authenticationkey]/GetChannel?apsws.time=[timestamp]&apsws.authSig=[signature] 



POST parameters:

apsdb.store = MyStore
channelId = MyTestChannel


Sample XML Response

Success XML:

<?xml version="1.0" encoding="utf-8"?>
<response xmlns="http://www.apstrata.com/services/schemas/apstrata_database_response.xsd">
  <metadata>
    <requestId>c80fd302-3adc-4ac8-90d1-544346660a7a</requestId>
    <status>success</status>
    <statusCode>200</statusCode>
  </metadata>
  <result>
    <channel channelId="xxxxx" platform="iOS">
      <deviceTokens>
        <id>003DAB991FF6C1EFA5854B504D1B7AFAB8F11187BD37B9EA2D82152884B97B91</id>
        <id>933C14E952BD20F68AC2F213BDA266CC5F56F10CA795F8139D5AA3965B9AD717</id>
      </deviceTokens>
      <invalidDeviceTokens/>
    </channel>
  </result>
</response>



Failure XML:

<response xmlns="http://www.apstrata.com/services/schemas/apstrata_database_response.xsd">
    <metadata 
        <requestId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</requestId>
        <status>failure</status>
        <errorCode>[errorCode]</errorCode>
        <errorDetail>[failMsg]</errorDetail>
    </metadata>
</response> 



Sample JSON Response

{"response": {
  "metadata": {
    "requestId": "e391cdc2-7fa0-4b33-b14b-001eb52c5847",
    "status": "success",
    "statusCode": "200"
  },
  "result": {
    "channel": {
      "channelId": "xxxxx",
      "platform": "iOS",
      "deviceTokens": [
        "003DAB991FF6C1EFA5854B504D1B7AFAB8F11187BD37B9EA2D82152884B97B91",
        "933C14E952BD20F68AC2F213BDA266CC5F56F10CA795F8139D5AA3965B9AD717"
      ],
      "invalidDeviceTokens": [
      ]
    }
  }
}}


  • No labels