Getting the current content (Clip or Channel access passes), which was purchased and is current, for an User.
support, ws.webtv, api, store, list, current, content
GET vars specific to this request:
Var | Value | Description |
go | store | The API section |
do | list_current_content | The API action |
iq | User ID | The User ID |
Resulting Request URL:
The resulting request URL would be similar to this (don't forget to append the required info: key, timestamp, salt and signature):
https://....../api.php?go=store&do=list_current_content&iq={user_id}&{required information}
None. No POST vars are required for this request.
If the request was successful, you'll receive a response containing:
• list: (array) An array with the content list (the array can be empty). Each one will inlude:
- title: (string) The content title.
- description: (string) The content description.
- id_clip: (int) In case the content is a Clip, this will be Clip ID (number > 0).
- id_channel: (int) In case the content is a Channel, this will be Channel ID (number > 0).
- img_thumbnail, img_social, img_poster: (string) The content image, in several sizes.
- date_end: (int) Unix timestamp of the expiration date.
- date_end_formatted_d: (string) The expiration date formatted (date part)
- date_end_formatted_t: (string) The expiration date formatted (time part)
- in_grace_period: (int 0|1) Whether the content is in grace period (after expiring)
Example:
{ "list": [{ "date_end": "1507370595", "date_end_formatted_d": "07\/10\/2017", "date_end_formatted_t": "12:03:15 PM", "description": "Premium Clip descripcion...", "id_channel": null, "id_clip": "1", "img_poster": "http:\/\/www.mywebtvdomain.com\/uploads\/images\/clip_1_1467909401_social.jpg", "img_social": "http:\/\/www.mywebtvdomain.com\/uploads\/images\/clip_1_1467909401_poster.jpg", "img_thumbnail": "http:\/\/www.mywebtvdomain.com\/uploads\/images\/clip_1_1467909401_thumb.jpg", "in_grace_period": 0, "title": "Premium Clip" }] }
If the request failed (for example, if no signature was provided in the request), you'll receive a response like the following:
{ "error" : "REQUEST_ERROR", "error_long" : "Missing signature" }
Possible Error Messages
Besides the general errors, this request can return the following errors:
• REQUEST_ERROR | Invalid User ID:
User ID is not numeric or lower than 1.
Preparing GET and POST data.
// The GET vars $GET_VARS = array( "go" => "store", "do" => "list_current_content", "iq" => "2" ); // The POST vars $POST_VARS = array();
Generating the salt, timestamp, signature and sending the request
*** The following code block is common to all signed requests ***
// Collect the API Base URL and Credential info $API_URL = "https://www.mywebtvdomain.tv/api.php"; $API_KEY_ID = "1b323a1cb879fd4e66530fbad07a32ee"; $API_SHARED_SECRET = "MWIzMjNhMWNiODc5ZmQ0ZTY2NTMwZmJhZDA3YTMyZWViOTQ3MDJiOGM2ZTU2NjE3"; // keep this safe!!! // Generating salt and timestamp $salt = md5(mt_rand()); $timestamp = time(); $signature = base64_encode(hash_hmac('sha256', $salt.$timestamp, $API_SHARED_SECRET, true)); // Generating the validation signature // - Default method: using base64_encode(hash_hmac(...)) $signature = base64_encode(hash_hmac('sha256', $salt.$timestamp, $API_SHARED_SECRET, true)); // comment this line if using the next method // - Simplified method - available since v60: using md5(). // This method requires the variable $API_SIGNATURE_GENERATION_MODE = 1; in the config/Config.inc.php file. // $signature = md5($salt."-".$timestamp."-".$API_SHARED_SECRET); // you must "uncomment" this line when using the simplified method // Append the timestamp, salt, key and signature to the GET vars $GET_VARS["timestamp"] = $timestamp; // UTC timestamp $GET_VARS["salt"] = $salt; $GET_VARS["key"] = $API_KEY_ID ; // The API Key ID: This is public and is used by the API to identify the application; $GET_VARS["signature"] = $signature; // Create the request URL. Please note that if you do not use PHP buit in function // to create the HTTP query then don't forget to URL encode the values $REQUEST_URL = $API_URL."?".http_build_query($GET_VARS); // The previous will build an URL like .../api.php?go=api_subject&do=api_action&etc... // Create a new cURL resource and set the appropriate options $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $REQUEST_URL); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $POST_VARS); // If your PHP host does not have a valid SSL certificate, you will need to turn off SSL // Certificate Verification. This is dangerous (!), and should only be done temporarily // until a valid certificate has been installed curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Turns off verification of the SSL certificate. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Turns off verification of the SSL certificate. // Sending the request to the API $response = curl_exec($ch); // Processing the response if (!$response) { echo 'API call failed'; } else { print_r(json_decode($response,true)); }