- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
- ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
- ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
- ΠΠ΅ΡΠΎΠ΄Ρ SDK
- Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ (Model API)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ (User API)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠΈΠ»ΡΠΌΠΈ (Profile API)
- Π Π°Π±ΠΎΡΠ° Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² (Uploads API)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ (Comment API)
- Π Π°Π±ΠΎΡΠ° Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Reservation API)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ (MySearch API)
- Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ (MemoryList API)
- Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΡΠΌΠΈ (Layers API)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ (Config API)
- Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ (Stat API)
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ (Register API)
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
- ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Sitebill API PHP SDK β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ REST API ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ Sitebill. SDK ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ CRUD (Create, Read, Update, Delete) Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
- ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· OAuth
- Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΡ (CRUD ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ)
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΡΠΌΠΈ
- ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ²
- Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ
- Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
- Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ
- Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
- PHP 5.6 ΠΈΠ»ΠΈ Π²ΡΡΠ΅
- Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ cURL
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Sitebill Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ API
git clone https://github.com/rumantic/sitebill_api_php_sdk.git
cd sitebill_api_php_sdkΠ‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» sitebill_sdk.php ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅:
require_once 'path/to/sitebill_sdk.php';<?php
require_once 'sitebill_sdk.php';
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ SDK
$api = new Sitebill_SDK(
'http://your-domain.com/apps/api/rest.php', // URL API endpoint
'admin', // ΠΠΎΠ³ΠΈΠ½
'password' // ΠΠ°ΡΠΎΠ»Ρ
);
// ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ API
if ($api->connect()) {
echo "Π£ΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅!\n";
} else {
echo "ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ\n";
}// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
$data = [
'topic_id' => 1,
'city_id' => 1,
'text' => 'ΠΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅',
'price' => 5000000
];
$result = $api->native_insert('data', $data);
$new_id = $result['data']['new_record_id'];
echo "Π‘ΠΎΠ·Π΄Π°Π½Π° Π·Π°ΠΏΠΈΡΡ Ρ ID: $new_id\n";
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ
$record = $api->load_data('data', 'id', $new_id);
print_r($record);
// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ
$api->delete('data', 'id', $new_id);Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ API ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ session_key Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
$api = new Sitebill_SDK($url, $login, $password);
$connected = $api->connect();
if (!$connected) {
die('ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ API');
}ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ: bool - true ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, false ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅
ΠΠΎΠ»ΡΡΠ°Π΅Ρ session_key ΠΏΠΎ Π»ΠΎΠ³ΠΈΠ½Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ connect().
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
$login(string) - ΠΠΎΠ³ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ$password(string) - ΠΠ°ΡΠΎΠ»Ρ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ:
[
'success' => true,
'session_key' => 'abc123...'
]Endpoint: POST /apps/api/rest.php
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°:
[
'action' => 'oauth',
'do' => 'login',
'login' => 'admin',
'password' => 'password'
]ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
$model_name(string) - ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 'data', 'user', 'page')
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ: array - ΠΠ°ΡΡΠΈΠ² Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
$columns = $api->load_grid_columns('data');
print_r($columns);ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'columns' => [
[
'name' => 'id',
'type' => 'primary_key',
'title' => 'ID',
...
],
[
'name' => 'text',
'type' => 'textarea',
'title' => 'ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅',
...
]
]
]ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
$model_name(string) - ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ$ql_items(array) - ΠΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ: array - Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ID Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
$data = [
'topic_id' => 6162, // Π’ΠΈΠΏ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ
'city_id' => 1, // ΠΠΎΡΠΎΠ΄
'street_id' => 100, // Π£Π»ΠΈΡΠ°
'text' => 'ΠΡΠΎΠ΄Π°Π΅ΡΡΡ ΠΊΠ²Π°ΡΡΠΈΡΠ°',
'price' => 10000000,
'square_all' => 75.5,
'floor' => 5,
'room_count' => 3
];
$result = $api->native_insert('data', $data);
if ($result['state'] == 'success') {
$new_id = $result['data']['new_record_id'];
echo "Π‘ΠΎΠ·Π΄Π°Π½Π° Π·Π°ΠΏΠΈΡΡ ID: $new_id\n";
}ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'data' => [
'new_record_id' => 12345
]
]ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
$model_name(string) - ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ$primary_key(string) - ΠΠΌΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ 'id')$key_value(int) - ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ: array - ΠΠΎΠ»Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
$record = $api->load_data('data', 'id', 12345);
if ($record['state'] == 'success') {
echo "Π¦Π΅Π½Π°: " . $record['data']['price']['value'] . "\n";
echo "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: " . $record['data']['text']['value'] . "\n";
}Π‘ΡΡΡΠΊΡΡΡΠ° ΠΎΡΠ²Π΅ΡΠ°:
[
'state' => 'success',
'id' => 12345,
'primary_key' => 'id',
'table_name' => 'data',
'data' => [
'id' => [
'name' => 'id',
'value' => 12345,
'title' => 'ID',
'type' => 'primary_key'
],
'text' => [
'name' => 'text',
'value' => 'ΠΡΠΎΠ΄Π°Π΅ΡΡΡ ΠΊΠ²Π°ΡΡΠΈΡΠ°...',
'title' => 'ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅',
'type' => 'textarea'
],
'price' => [
'name' => 'price',
'value' => 10000000,
'title' => 'Π¦Π΅Π½Π°',
'type' => 'text'
]
]
]Π£Π΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
$model_name(string) - ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ$primary_key(string) - ΠΠΌΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°$key_value(int) - ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ: array - Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
$result = $api->delete('data', 'id', 12345);
if ($result['state'] == 'success') {
echo "ΠΠ°ΠΏΠΈΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π°\n";
}ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'message' => 'Record deleted'
]API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠ°ΠΏΡΠΎΡ:
POST /apps/api/rest.php
action=model
do=get_models
session_key=xxxΠΡΠ²Π΅Ρ:
[
['id' => 1, 'name' => 'data'],
['id' => 2, 'name' => 'user'],
['id' => 3, 'name' => 'page']
]ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ.
ΠΡΠ²Π΅Ρ:
[
'status' => 'success',
'message' => 'models loaded',
'data' => [
[
'id' => 1,
'name' => 'data',
'description' => 'ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ'
],
[
'id' => 2,
'name' => 'user',
'description' => 'ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ'
]
]
]ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'data' => [
'site_title' => 'ΠΠΎΠΉ ΡΠ°ΠΉΡ',
'site_url' => 'http://example.com',
'languages' => ['ru', 'en', 'tj'],
'apps.mailbox.complaint_mode_variants' => [
'spam' => 'Π‘ΠΏΠ°ΠΌ',
'fraud' => 'ΠΠΎΡΠ΅Π½Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ'
]
]
]ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π· Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'columns' => [...],
'columns_index' => [...],
'data' => [...],
'tabs' => [...]
]ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈprimary_key- ΠΈΠΌΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°key_value- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°entity_uri(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) - URI ΡΡΡΠ½ΠΎΡΡΠΈql_items(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) - ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ»Π΅ΠΉ:
POST /apps/api/rest.php
action=model
do=load_data
model_name=data
primary_key=id
key_value=100
ql_items[text]=1
ql_items[price]=1ΠΠ΅ΡΠ½Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Ρ text ΠΈ price.
ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ (GraphQL-ΡΡΠΈΠ»Ρ).
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈkey_value- ID Π·Π°ΠΏΠΈΡΠΈql_items- ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡonly_ql(optional) - Π΅ΡΠ»ΠΈ true, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ
ΠΡΠΈΠΌΠ΅Ρ:
$params = [
'action' => 'model',
'do' => 'graphql_update',
'model_name' => 'data',
'key_value' => 100,
'ql_items' => [
'price' => 15000000,
'active' => 1
],
'only_ql' => true
];JavaScript ΠΏΡΠΈΠΌΠ΅Ρ:
$.ajax({
url: '/apps/api/rest.php',
data: {
action: 'model',
do: 'graphql_update',
model_name: 'data',
only_ql: true,
key_value: 100,
ql_items: {
active: 0
}
},
type: 'post',
success: function(response) {
console.log(response);
}
});Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠ΅ΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ URI ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° geodata (ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ)
- ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=model
do=native_insert
model_name=data
ql_items[topic_id]=6162
ql_items[city_id]=1
ql_items[text]=ΠΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
ql_items[price]=5000000
ql_items[geo][lat]=38.5598
ql_items[geo][lng]=68.7738ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'columns' => [
[
'name' => 'id',
'title' => 'ID',
'type' => 'primary_key',
'show_in_grid' => true,
'sortable' => true
]
]
]ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈpage- Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 1)per_page- Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 20)filter- ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠ»ΡΡΡΠΎΠ²sort_by- ΠΏΠΎΠ»Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈsort_order- ΠΏΠΎΡΡΠ΄ΠΎΠΊ (ASC/DESC)
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=model
do=get_list
model_name=data
page=1
per_page=10
filter[city_id]=1
filter[price_from]=1000000
sort_by=date_added
sort_order=DESCΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'data' => [
['id' => 100, 'text' => '...', 'price' => 5000000],
['id' => 101, 'text' => '...', 'price' => 6000000]
],
'pagination' => [
'total' => 150,
'per_page' => 10,
'current_page' => 1,
'total_pages' => 15
]
]Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
login- Π»ΠΎΠ³ΠΈΠ½password- ΠΏΠ°ΡΠΎΠ»Ρemail- emailfio- Π€ΠΠphone- ΡΠ΅Π»Π΅ΡΠΎΠ½
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=user
do=register
login=newuser
password=secret123
email=user@example.com
fio=ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²
phone=+992000000000ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅.
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'user_id' => 5,
'login' => 'admin',
'email' => 'admin@example.com',
'fio' => 'ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ',
'user_group_id' => 1
]ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
user_id- ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ- ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=user
do=update_profile
user_id=5
fio=ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ
phone=+992111111111ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
user_id- ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'data' => [
'user_id' => 5,
'fio' => 'ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²',
'phone' => '+992000000000',
'company' => 'ΠΠΠ "ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ"',
'address' => 'Π³. ΠΡΡΠ°Π½Π±Π΅'
]
]ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
file- ΡΠ°ΠΉΠ» (POST multipart/form-data)model_name- ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈrecord_id- ID Π·Π°ΠΏΠΈΡΠΈ
ΠΡΠΈΠΌΠ΅Ρ Ρ cURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/apps/api/rest.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'action' => 'uploads',
'do' => 'upload_file',
'session_key' => $session_key,
'model_name' => 'data',
'record_id' => 100,
'file' => new CURLFile('/path/to/image.jpg')
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'file_id' => 456,
'file_name' => 'image.jpg',
'file_url' => '/img/data/image.jpg'
]Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
file_id- ID ΡΠ°ΠΉΠ»Π°
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- ΠΌΠΎΠ΄Π΅Π»Ρrecord_id- ID Π·Π°ΠΏΠΈΡΠΈ
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'files' => [
[
'id' => 456,
'name' => 'image.jpg',
'url' => '/img/data/image.jpg',
'size' => 102400
]
]
]ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- ΠΌΠΎΠ΄Π΅Π»Ρrecord_id- ID Π·Π°ΠΏΠΈΡΠΈtext- ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡparent_id(optional) - ID ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=comment
do=add_comment
model_name=data
record_id=100
text=ΠΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- ΠΌΠΎΠ΄Π΅Π»Ρrecord_id- ID Π·Π°ΠΏΠΈΡΠΈ
ΠΡΠ²Π΅Ρ:
[
'state' => 'success',
'comments' => [
[
'id' => 1,
'user_id' => 5,
'user_name' => 'ΠΠ²Π°Π½',
'text' => 'ΠΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!',
'date_added' => '2024-01-15 10:30:00',
'replies' => []
]
]
]Π‘ΠΎΠ·Π΄Π°ΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
record_id- ID ΠΎΠ±ΡΠ΅ΠΊΡΠ°date_from- Π΄Π°ΡΠ° Π½Π°ΡΠ°Π»Π°date_to- Π΄Π°ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡclient_name- ΠΈΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°client_phone- ΡΠ΅Π»Π΅ΡΠΎΠ½
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
record_id- ID ΠΎΠ±ΡΠ΅ΠΊΡΠ°
ΠΠΎΠΈΡΠΊ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°query- ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡfilters- ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠ»ΡΡΡΠΎΠ²
ΠΡΠΈΠΌΠ΅Ρ:
POST /apps/api/rest.php
action=mysearch
do=search
model_name=data
query=ΠΊΠ²Π°ΡΡΠΈΡΠ°
filters[city_id]=1
filters[price_from]=1000000
filters[price_to]=10000000Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (ΠΈΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ.Π΄.).
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
list_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°record_id- ID Π·Π°ΠΏΠΈΡΠΈ
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
list_name- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΡΠΌΠΈ ΠΊΠ°ΡΡ (Π΄Π»Ρ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ).
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠ°Π²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°).
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
model_name- ΠΌΠΎΠ΄Π΅Π»Ρdate_from- Π΄Π°ΡΠ° Π½Π°ΡΠ°Π»Π°date_to- Π΄Π°ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠ΅ΠΉ.
ΠΡΠ΅ ΠΎΡΠ²Π΅ΡΡ API ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΠΎΠ»Π΅ state ΠΈΠ»ΠΈ status:
Π£ΡΠΏΠ΅ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ:
[
'state' => 'success',
'data' => [...]
]ΠΡΠ²Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
[
'state' => 'error',
'message' => 'ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ',
'error_code' => 'ERROR_CODE'
]| ΠΠΎΠ΄ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
check_session_key_failed |
ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΈΡΡΠ΅ΠΊΡΠΈΠΉ session_key |
access_denied |
ΠΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ |
model_not_defined |
ΠΠΎΠ΄Π΅Π»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° |
record_not_found |
ΠΠ°ΠΏΠΈΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° |
validation_error |
ΠΡΠΈΠ±ΠΊΠ° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ |
<?php
require_once 'sitebill_sdk.php';
$api = new Sitebill_SDK(
'http://estate.sitebill.ru/apps/api/rest.php',
'admin',
'admin'
);
if (!$api->connect()) {
die('ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ');
}
// CREATE - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ
$newAd = [
'topic_id' => 6162, // ΠΠ²Π°ΡΡΠΈΡΠ°
'city_id' => 1, // ΠΡΡΠ°Π½Π±Π΅
'street_id' => 50,
'number' => '10',
'text' => 'ΠΡΠΎΠ΄Π°Π΅ΡΡΡ 3-ΠΊΠΎΠΌΠ½Π°ΡΠ½Π°Ρ ΠΊΠ²Π°ΡΡΠΈΡΠ°',
'price' => 15000000,
'currency_id' => 1, // Π‘ΠΎΠΌΠΎΠ½ΠΈ
'square_all' => 85.5,
'square_live' => 60,
'square_kitchen' => 12,
'floor' => 5,
'floor_count' => 9,
'room_count' => 3,
'active' => 1
];
$result = $api->native_insert('data', $newAd);
$adId = $result['data']['new_record_id'];
echo "Π‘ΠΎΠ·Π΄Π°Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ID: $adId\n";
// READ - Π§ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ
$ad = $api->load_data('data', 'id', $adId);
echo "Π¦Π΅Π½Π°: " . $ad['data']['price']['value'] . "\n";
echo "ΠΠ»ΠΎΡΠ°Π΄Ρ: " . $ad['data']['square_all']['value'] . " ΠΌΒ²\n";
// UPDATE - ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· GraphQL
// (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΡΠΌΠΎΠΉ HTTP Π·Π°ΠΏΡΠΎΡ, Ρ.ΠΊ. Π² SDK Π½Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°)
// DELETE - Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅
$api->delete('data', 'id', $adId);
echo "ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΎ\n";<?php
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
$columns = $api->load_grid_columns('user');
print_r($columns);
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$user = $api->load_data('user', 'user_id', 5);
echo "ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: " . $user['data']['login']['value'] . "\n";
echo "Email: " . $user['data']['email']['value'] . "\n";<?php
require_once 'sitebill_sdk.php';
$api = new Sitebill_SDK($url, $login, $password);
$api->connect();
// ΠΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
$ads = [
['text' => 'ΠΠ²Π°ΡΡΠΈΡΠ° 1', 'price' => 5000000],
['text' => 'ΠΠ²Π°ΡΡΠΈΡΠ° 2', 'price' => 6000000],
['text' => 'ΠΠ²Π°ΡΡΠΈΡΠ° 3', 'price' => 7000000],
];
$createdIds = [];
foreach ($ads as $adData) {
$adData['topic_id'] = 6162;
$adData['city_id'] = 1;
$adData['active'] = 1;
$result = $api->native_insert('data', $adData);
if ($result['state'] == 'success') {
$createdIds[] = $result['data']['new_record_id'];
echo "Π‘ΠΎΠ·Π΄Π°Π½ΠΎ: ID {$result['data']['new_record_id']}\n";
} else {
echo "ΠΡΠΈΠ±ΠΊΠ°: " . $result['message'] . "\n";
}
}
echo "\nΠΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ: " . count($createdIds) . " ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ\n";<?php
function apiRequest($url, $params) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ session_key
$authResult = apiRequest($apiUrl, [
'action' => 'oauth',
'do' => 'login',
'login' => 'admin',
'password' => 'admin'
]);
$sessionKey = $authResult['session_key'];
// ΠΠΎΠΈΡΠΊ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ
$searchResult = apiRequest($apiUrl, [
'action' => 'model',
'do' => 'get_list',
'session_key' => $sessionKey,
'model_name' => 'data',
'filter' => [
'city_id' => 1,
'price_from' => 1000000,
'price_to' => 10000000,
'room_count' => 3
],
'sort_by' => 'date_added',
'sort_order' => 'DESC',
'page' => 1,
'per_page' => 10
]);
foreach ($searchResult['data'] as $ad) {
echo "ID: {$ad['id']}, Π¦Π΅Π½Π°: {$ad['price']}\n";
}<?php
$apiUrl = 'http://your-domain.com/apps/api/rest.php';
$sessionKey = '...'; // ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ΅ΡΠ΅Π· connect()
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π°
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'action' => 'uploads',
'do' => 'upload_file',
'session_key' => $sessionKey,
'model_name' => 'data',
'record_id' => 100,
'file' => new CURLFile('/path/to/photo.jpg', 'image/jpeg', 'photo.jpg')
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($result['state'] == 'success') {
echo "Π€Π°ΠΉΠ» Π·Π°Π³ΡΡΠΆΠ΅Π½: {$result['file_url']}\n";
}ΠΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ:
$data = $api->load_data('data', 'id', 100);
$tabs = $data['tabs'];
foreach ($tabs as $tabName => $tabFields) {
echo "ΠΠΊΠ»Π°Π΄ΠΊΠ°: $tabName\n";
foreach ($tabFields as $field) {
echo " - {$field['title']}: {$field['value']}\n";
}
}$adData = [
'text' => 'ΠΠ²Π°ΡΡΠΈΡΠ° Π² ΡΠ΅Π½ΡΡΠ΅',
'price' => 10000000,
'geo' => [
'lat' => 38.5598,
'lng' => 68.7738
]
];
$result = $api->native_insert('data', $adData);// ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ
$config = apiRequest($apiUrl, [
'action' => 'model',
'do' => 'load_config',
'session_key' => $sessionKey
]);
$languages = $config['data']['languages']; // ['ru', 'en', 'tj']-
Π₯ΡΠ°Π½ΠΈΡΠ΅ session_key Π² ΡΠ΅ΡΡΠΈΠΈ: ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ session_key, ΡΡΠΎΠ±Ρ Π½Π΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅.
-
ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΎΡΠ²Π΅ΡΡ: ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅
stateΠ² ΠΎΡΠ²Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π΄Π°Π½Π½ΡΡ . -
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΠΉΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ try-catch Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠΈ.
-
ΠΡΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ: ΠΠ°Π³ΡΡΠΆΠ°ΠΉΡΠ΅
load_grid_columnsΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΊΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. -
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ: ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
pageΠΈper_page. -
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅: ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
Sitebill API PHP SDK ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Sitebill. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /apps/api/classes/.
- GitHub ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ SDK: https://github.com/rumantic/sitebill_api_php_sdk
- ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ API:
/apps/api/classes/ - ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ:
/apps/api/classes/class.model.php
ΠΠ΅ΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: 1.0
ΠΠ°ΡΠ°: ΠΠΎΡΠ±ΡΡ 2025
ΠΠ²ΡΠΎΡ: Generated for Sitebill CMS