Модератор форума: JonMagon |
Сообщество uCoz Мастерская uCoz Использование PHP и API на uCoz Новое uAPI (новое API для всех сайтов) |
Новое uAPI |
Доступна новая версия PHP модуля для uAPI. Версия 2.4 от 25 октября 2017 Загрузить актуальную версию модуля можно на странице - http://api.ucoz.net/ru/manual/module 18 февраля состоялся релиз нового API для uCoz – подробнее в блоге //blog.ucoz.ru/blog/uapi/2015-02-18-367 uАPI - бесплатный дополнительный функционал для вашего сайта. uAPI это: 4 метода передачи данных
3 формата обмена данными:
14 модулей:
Мы хотим создать свое сообщество uAPI разработчиков и поэтому для вас 24/7 доступна uAPI Лаборатория, где можно задать абсолютно любой вопрос по разработке, документации, коду, отправить код на разработку и тд |
Действительно, есть такой логин. Но как он туда попал, если сайт был новым и от другого аккаунта?
|
Denfm, Если на сайте нет пользователя – он его добавляет. Если он уже был бы – то не добавлял нового, а работал бы от существующего.
Запрос uAPI – происходит проверка пользователя: 1) Если его нет – добавить. Проверка его прав в веб-версии и соответствующие права устанавливаются для uAPI 2) Если пользователь есть – работает от него, существующего. Проверка права этого пользователя в веб-версии и последующая установка прав для uAPI |
Denfm, Если на сайте нет пользователя – он его добавляет. Если он уже был бы – то не добавлял нового, а работал бы от существующего. Запрос uAPI – происходит проверка пользователя: 1) Если его нет – добавить. Проверка его прав в веб-версии и соответствующие права устанавливаются для uAPI 2) Если пользователь есть – работает от него, существующего. Проверка права этого пользователя в веб-версии и последующая установка прав для uAPI Еще 1 вопрос касательно указания автора материала - в документации по АПИ указана возможность смены автора материала, но по факту что-то не получается изменить. http://api.ucoz.net/ru/manual/news/entry |
Доброго времени суток, подскажите:
Я доделываю возможность "быстро" редактировать материалы, суть в том, как мне через uAPI (модуль "Онлайн игры") реализовать добавление категории у материала. Как передать параметр, через какую переменную? И что отсылать, я так предполагаю что "ID" категории, которую хочу добавить. |
то есть в коде пишем:
Код [s]'category' => 'АЙДИ Категории?' Код 'category' => '1,2,3,4,5,6,7' Сообщение отредактировал K1l0 - Вторник, 06 Окт 2015, 14:48:48
|
Доступно обновление 19. Пока только на s4. Подробнее: http://api.ucoz.net/ru/version/update19 |
Цитирую письмо на почту:
Цитата Здравствуйте! Пытаюсь зарегистрировать пользователя через uApi. uApi для модуля включён, новые токены сгенерированы, локальные пользователи включены. Ошибка: Код {"error":{"msg":"Invalid signature","code":"INVALID_SIGNATURE"}} Пример кода: Код include ROOT_DIR . 'uAPImodule.php'; $parametrs = array( 'oauth_consumer_key' => $consumer_key, //обязательный параметр 'oauth_nonce' => $oauth_nonce, //обязательный параметр 'oauth_signature_method' => $sig_method, //обязательный параметр 'oauth_timestamp' => $timestamp, //обязательный параметр 'oauth_token' => $oauth_token, //обязательный параметр 'oauth_version' => $oauth_version, //обязательный параметр 'user' => 'uCozAPI', 'password' => '1234567890qwerty', 'email' => 'api@ucoz.com', 'name' => 'APIname' ); ksort($parametrs); echo uAPIModule('/users', 'post', $parametrs, ''); Т.е прямо из примера скопировано. В файле uAPImodule.php: Код $oauth_nonce= md5(microtime().mt_rand()); //не изменять $timestamp = time(); //не изменять $sig_method = 'HMAC-SHA1'; //не изменять $oauth_version = '1.0'; //не изменять $consumer_key = 'YAMудалено'; $consumer_secret = 'удаленоzhkUtnTудалено'; $oauth_token = удаленоMn9xmz1fPz1reLc8.SKNудалено'; $oauth_token_secret = 'удаленоCQEqxT10k94удалено'; $main_url = 'http://yamудалено'; С уважением, Андрей Лайс. Сообщение отредактировал llays - Понедельник, 26 Окт 2015, 03:33:18
|
Dmitry_DM, продолжая тот разговор:
Ошибка: Код {"error":{"msg":"Доступ запрещен","code":"ACCESS_DENIED"} Код <?php $___notjson=1; error_reporting( E_ERROR ); /* Версия 1.1 Дата создания: 9 февраля 02:00 Дата обновления 1.1: 14 июля 2015 Информация о модуле: http://api.ucoz.net/ru/manual/module По всем вопросам вы можете обратиться на api@ucoz.net */ //setup для работы с uApi $oauth_nonce= md5(microtime().mt_rand()); //не изменять $timestamp = time(); //не изменять $sig_method = 'HMAC-SHA1'; //не изменять $oauth_version = '1.0'; //не изменять $consumer_key = ''; $consumer_secret = ''; $oauth_token = ''; $oauth_token_secret = ''; $main_url = 'http://www.yamod.ru/uapi'; //нужно указать с http:// и с uapi. Например: http://yourwebsite.ucoz.ru/uapi //формирование setup закончено /* функция для генерация подписанного запроса. $method может принимать вид POST, GET, DELETE, PUT. $request_url указывает куда делать запрос $parametrs параметры к запросу $format не поддерживается, создан для будуших доработок (todo) */ function uAPIModule ($request_url, $method, $parametrs, $format) { global $basestring, $consumer_key, $oauth_nonce, $sig_method, $timestamp, $oauth_token, $oauth_version, $hash_key, $oauth_signature, $consumer_secret, $oauth_token_secret, $main_url; //начинается формирование подписи для правильного запроса $request_url = $main_url.mb_strtolower(trim($request_url)); $method = mb_strtoupper($method); $parametrs2 = $parametrs; $full_urlis = $main_url.$request_url; $full_urlis = strpos($full_urlis, '/uapi/users'); if($full_urlis == '' && $method != 'POST') { $parametrs = str_replace('@', '', $parametrs); } $basestring = str_replace('+', '%20', http_build_query($parametrs)); $basestring = $method.'&'.urlencode($request_url).'&'.urlencode($basestring); $hash_key = $consumer_secret.'&'.$oauth_token_secret; $oauth_signature = urlencode(trim(base64_encode(hash_hmac('sha1', $basestring, $hash_key, true)))); $parametrs_forurl = http_build_query($parametrs); $url = $request_url.'?oauth_signature='.$oauth_signature; $url_for = $request_url.'?'.$parametrs_forurl.'&oauth_signature='.$oauth_signature; $curl = curl_init(); switch ($method) { case 'GET': curl_setopt($curl, CURLOPT_URL, $url_for); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $uAPIcurlresult = curl_exec($curl); return $uAPIcurlresult; break; case 'POST': $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $parametrs2); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_VERBOSE, true); $uAPIcurlresult = curl_exec($curl); return $uAPIcurlresult; break; case 'PUT': $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($curl, CURLOPT_POSTFIELDS, $parametrs2); $uAPIcurlresult = curl_exec($curl); return $uAPIcurlresult; break; case 'DELETE': curl_setopt($curl, CURLOPT_URL, $url_for); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); $uAPIcurlresult = curl_exec($curl); return $uAPIcurlresult; break; default: echo 'Неизвестный метод передачи данных!'; break; } curl_close($curl); } ?> Код <?php $___notjson=1; include 'uAPImodule.php'; $parametrs = array( 'oauth_consumer_key' => $consumer_key, //обязательный параметр 'oauth_nonce' => $oauth_nonce, //обязательный параметр 'oauth_signature_method' => $sig_method, //обязательный параметр 'oauth_timestamp' => $timestamp, //обязательный параметр 'oauth_token' => $oauth_token, //обязательный параметр 'oauth_version' => $oauth_version, //обязательный параметр 'user' => 'uCozAPI2 ', 'password' => '1234567qwerty', 'email' => 'api@ucoz.com', 'name' => 'APIname' ); ksort($parametrs); $users = uAPIModule('/users', 'post', $parametrs, ''); var_dump($users); ?> Пробовал и http://www.yamod.ru/uapi, и http://www.yamod.ru/uapi/, и http://yamod.ru/uapi, и http://yamod.ru/uapi/. Токены подставлял свежие. Сообщение отредактировал llays - Вторник, 08 Дек 2015, 01:58:31
|
| |||