Created
May 23, 2020 23:52
-
-
Save dbiesecke/934f2aef90282442642095f7c8ff0600 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Creating New Line | |
To create a New line, we will call the following URL. | |
http://dns:port/api.php?action=user&sub=create | |
The above URL, accepts the POST action, and to create a new line we will have to specify some arguments in an array called user_data | |
Example Code: | |
PHP: | |
<?php | |
$panel_url = 'http://DNS:PORT/'; | |
$username = 'test_username'; | |
$password = 'test_password'; | |
$max_connections = 1; | |
$reseller = 1; | |
$bouquet_ids = array( | |
1, | |
2, | |
3 ); | |
$expire_date = strtotime( "+1 month" ); | |
############################################################################### | |
$post_data = array( 'user_data' => array( | |
'username' => $username, | |
'password' => $password, | |
'max_connections' => $max_connections, | |
'is_restreamer' => $reseller, | |
'exp_date' => $expire_date, | |
'bouquet' => json_encode( $bouquet_ids ) ) ); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=create", false, $context ) ); | |
?> | |
If you leave the username and/or password elements empty, the system will generate random characters for these 2 fields. In addition, leaving any field empty, api will use the default value for this field according to SQL Database. So theoretically, you can make a line with just Calling the Above URL, without any parameter, however the created user, wont have any bouquets inside. | |
You can call any other element that is in the database like | |
member_id | |
admin_enabled | |
enabled | |
allowed_ips | |
allowed_ua | |
force_server_id | |
is_isplock | |
admin_notes | |
and so on... | |
If you want to set the allowed_ips/allowed_ua since this is a JSON Encoded format you can do it like bouquet in the above Code. | |
The API will return a simple json encoded string that upon decoding will contain the element result which returns true/false. | |
Example(API Success) | |
JSON: | |
{"result":true,"created_id":14838,"username":"d4PSc5uCqF","password":"2ZiuRRZk4b"} | |
The API returned as the username/password of the NEW line, as well as the ID so we can use it wherever we want. | |
Example(API Failed) | |
JSON: | |
{"result":false,"error":"EXISTS"} | |
{"result":false,"error":"PARAMETER ERROR"} | |
EXISTS | |
The Username you specified already exists in the database | |
PARAMETER ERROR | |
You wrote invalid characters in your user_data array | |
Editing Line | |
To procedure to edit a line is very similar to the above. The URL we will call this time is | |
http://dns:port/api.php?action=user&sub=edit | |
REQUIRED PARAMETERS | |
username | |
password | |
OPTIONAL PARAMETERS | |
user_data array | |
For example if we want to Edit the Expire Date, make the line restreamer and adjusting the max connections to 10 we will do it like this: | |
PHP: | |
<?php | |
$panel_url = 'http://DNS:PORT/'; | |
$username = 'test_username'; | |
$password = 'test_password'; | |
$max_connections = 10; | |
$reseller = 1; | |
$expire_date = strtotime( "+1 month" ); //from the time now, not from line's expire date. | |
############################################################################### | |
$post_data = array( | |
'username' => $username, | |
'password' => $password, | |
'user_data' => array( | |
'max_connections' => $max_connections, | |
'is_restreamer' => $reseller, | |
'exp_date' => $expire_date ) ); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=edit", false, $context ) ); | |
?> | |
In the above example, we will edit the max_connections, is_restreamer and exp_date for our line with username test_username, and password test_password that already exists in our database. | |
Example(API Success) | |
JSON: | |
{"result":true} | |
Example(API Failed) | |
JSON: | |
{"result":false,"error":"NOT EXISTS"} | |
{"result":false,"error":"PARAMETER ERROR"} | |
{"result":false,"error":"PARAMETER ERROR (user\/pass)"} | |
NOT EXISTS | |
The Username / Password you specified are not exists in the database | |
PARAMETER ERROR | |
You wrote invalid characters in your user_data array | |
PARAMETER ERROR (user/pass) | |
The Username OR/AND Password elements are missing | |
View Line Information | |
With this API call, we will get all the information available about our line including the active connections. | |
The URL we will call this time is | |
http://dns:port/api.php?action=user&sub=info | |
REQUIRED PARAMETERS | |
username | |
password | |
It will return a JSON Encoded string, with all information that you might want. | |
Example Code: | |
PHP: | |
$panel_url = 'http://DNS:PORT/'; | |
$username = "username"; | |
$password = "passwrd"; | |
############################################################################### | |
$post_data = array( 'username' => $username, 'password' => $password ); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=info", false, $context ), true ); | |
if ( $api_result['result'] ) | |
{ | |
echo "Active Connections (Now): " . $api_result['user_info']['active_cons']; | |
echo "\nCurrent Expire Date: " . (( empty( $api_result['user_info']['exp_date'] ) ) ? 'Unlimited' : strtotime( $api_result['user_info']['exp_date'] )); | |
echo "\nMax Connections: " . $api_result['user_info']['max_connections']; | |
echo "\nAvailable Channel IDs: " . implode( ',', $api_result['user_info']['channel_ids'] ); | |
} | |
else | |
echo 'FAILED'; | |
Create/Edit & View Information on MAG Devices | |
The procedure is almost the same as creating/editing & view info on a user line. The only difference is that instead of calling the user action, we will the stb action. Of course instead of username/password we will just have the mac parameter. | |
Example API Call To Create New MAG | |
http://dns:port/api.php?action=stb&sub=create | |
REQUIRED PARAMETERS | |
user_data[mac] | |
PHP: | |
<?php | |
$panel_url = 'http://DNS:PORT/'; | |
$mac = '00:1A:79:79:79:79'; | |
$bouquet_ids = array( | |
1, | |
2, | |
3 ); | |
$expire_date = strtotime( "+1 month" ); | |
############################################################################### | |
$post_data = array( 'user_data' => array( | |
'mac' => $mac, | |
'exp_date' => $expire_date, | |
'bouquet' => json_encode( $bouquet_ids ) ) ); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=create", false, $context ) ); | |
print_r($api_result); | |
?> | |
Example(API Success) | |
JSON: | |
{"result":true} | |
Example(API Failed) | |
JSON: | |
{"result":false,"error":"NOT EXISTS"} | |
{"result":false,"error":"PARAMETER ERROR"} | |
{"result":false,"error":"PARAMETER ERROR (mac)"} | |
EXISTS | |
The MAC already exists in the database | |
PARAMETER ERROR | |
You wrote invalid characters in your user_data array | |
PARAMETER ERROR (mac) | |
The MAC Parameter was missing | |
Example API Call To Edit a MAG Device | |
http://dns:port/api.php?action=stb&sub=edit | |
REQUIRED PARAMETERS | |
mac | |
PHP: | |
<?php | |
$panel_url = 'http://DNS:PORT/'; | |
$mac = '00:1A:79:79:79:79'; | |
$bouquet_ids = array( | |
1, | |
2, | |
3 ); | |
$expire_date = strtotime( "+1 month" ); | |
############################################################################### | |
$post_data = array( 'mac' => $mac, 'user_data' => array( 'exp_date' => $expire_date, 'bouquet' => json_encode( $bouquet_ids ) ) ); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=edit", false, $context ) ); | |
?> | |
Example(API Success) | |
JSON: | |
{"result":true} | |
Example(API Failed) | |
JSON: | |
{"result":false} | |
{"result":false,"error":"PARAMETER ERROR"} | |
{"result":false,"error":"PARAMETER ERROR (mac)"} | |
no error | |
The updated information, are the same as in the database, so no action taken. | |
PARAMETER ERROR | |
You wrote invalid characters in your user_data array | |
PARAMETER ERROR (mac) | |
The MAC Parameter was missing | |
View Information MAG Device | |
http://dns:port/api.php?action=stb&sub=info | |
REQUIRED PARAMETERS | |
mac | |
It will return a JSON Encoded string, with all information that you might want. | |
Example Code: | |
PHP: | |
<?php | |
$panel_url = 'http://DNS:PORT/'; | |
$mac = '00:1A:79:79:79:79'; | |
############################################################################### | |
$post_data = array( 'mac' => $mac); | |
$opts = array( 'http' => array( | |
'method' => 'POST', | |
'header' => 'Content-type: application/x-www-form-urlencoded', | |
'content' => http_build_query( $post_data ) ) ); | |
$context = stream_context_create( $opts ); | |
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=info", false, $context ), true ); | |
if ( $api_result['result'] ) | |
{ | |
echo "Active Connections (Now): " . $api_result['user_info']['active_cons']; | |
echo "\nCurrent Expire Date: " . ( ( empty( $api_result['user_info']['exp_date'] ) ) ? 'Unlimited' : strtotime( $api_result['user_info']['exp_date'] ) ); | |
echo "\nMax Connections: " . $api_result['user_info']['max_connections']; | |
echo "\nAvailable Channel IDs: " . implode( ',', $api_result['user_info']['channel_ids'] ); | |
} | |
else | |
echo 'FAILED'; | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment