function _pluginMain($arg)
{
    global $site, $pattcontainer, $pattmedia, $pattsearch, $pattinfo, $pattthumb, $radio, $pattradio, $needswitch, $needinfo;
    parse_str($arg);
    $vk = new VkApi();
    $vk->app_id = "3795305";
    $vk->access_token = strPar("ACCSES_TOKEN");
    //Первая страница плагина
    if (@(!$url)) {
        $ret[] = Container("url=audio", "Мои аудиозаписи", "http://127.0.0.1/umsp/plugins/potter/audio.png");
        $ret[] = Container("url=audio_rec", "Рекомендуемые аудиозаписи", "http://127.0.0.1/umsp/plugins/potter/audio_rec.png");
        $ret[] = Container("url=video", "Мои видеозаписи", "http://127.0.0.1/umsp/plugins/potter/video.png");
        return $ret;
    }
    //Аудиозаписи
    if ($url == "audio") {
        $result = $vk->query("audio.get", array());
        foreach ($result->response as $key => $value) {
            $ret[] = Item(str_replace("https://", "http://", $value->url), substr($value->artist . " - " . $value->title, 0, 100) . ".mp3");
        }
        return $ret;
    }
    //Аудиозаписи - рекомендации
    if ($url == "audio_rec") {
        $result = $vk->query("audio.getRecommendations", array());
        foreach ($result->response as $key => $value) {
            $ret[] = Item(str_replace("https://", "http://", $value->url), substr($value->artist . " - " . $value->title, 0, 100) . ".mp3");
        }
        return $ret;
    }
    //Видеозаписи -> выбор качества
    if (substr($url, 0, 10) == "video_view") {
        $result = $vk->query("video.get", array("videos" => substr($url, 14, strlen($url))));
        foreach ($result->response[1]->files as $key => $value) {
            $ret[] = Item(str_replace("https://", "http://", $value), $key . " - " . $result->response[1]->title);
        }
        return $ret;
    }
    //Видеозаписи
    if ($url == "video") {
        $result = $vk->query("video.get", array());
        foreach ($result->response as $key => $value) {
            if ($key != 0 && @(!$value->files->external)) {
                $ret[] = Container("url=video_view/id=" . $value->owner_id . "_" . $value->vid, $value->title, "");
            }
        }
        return $ret;
    }
}
Example #2
0
 public function getKey($key)
 {
     $handler = VkApi::getCaptchaHandler();
     $result = false;
     if ($handler) {
         $result = $handler->getCaptchaKey($this);
     }
     return $result;
 }
Example #3
0
 public function execute($depth = 0)
 {
     $vkResult = new VkResult();
     if ($depth >= $this->attempts) {
         $vkResult->is_request_error = true;
         return $vkResult;
     }
     if (!$this->params->existsParam("v")) {
         $this->params->set("v", $this->version);
     }
     if ($this->access_token instanceof VkAccessToken) {
         if (!$this->params->existsParam("access_token")) {
             $this->params->set("access_token", $this->access_token->getToken());
         }
     }
     $builder = new RequestBuilder($this->method, $this->params);
     $requestStr = $builder->build();
     $response = $this->http_client->post($requestStr, $this->params->getParams());
     $jsonArray = json_decode($response, true);
     if (json_last_error() != JSON_ERROR_NONE) {
         $vkResult = $this->execute($depth + 1);
     } else {
         if (array_key_exists("response", $jsonArray)) {
             $vkResponse = new VkResponse($jsonArray['response']);
             $vkResult->is_success = true;
             $vkResult->response = $vkResponse;
             if ($this->success_listener) {
                 $listener = $this->success_listener;
                 $listener($vkResponse);
             }
         } else {
             if (array_key_exists("error", $jsonArray)) {
                 if ($jsonArray['error']['error_code'] == 14) {
                     $captcha = new VkCaptcha($jsonArray['error']['captcha_sid'], $jsonArray['error']['captcha_img']);
                     $key = $captcha->getKey();
                     if ($key) {
                         $this->params->set("captcha_sid", $captcha->getSid());
                         $this->params->set("captcha_key", $key);
                         return $this->execute($depth + 1);
                     }
                 }
                 $vkError = new VkError($jsonArray['error']);
                 VkApi::setLastError($vkError);
                 $vkResult->is_error = true;
                 $vkResult->error = $vkError;
                 if ($this->vk_error_listener) {
                     $listener = $this->vk_error_listener;
                     $listener($vkError);
                 }
             }
         }
     }
     return $vkResult;
 }
Example #4
0
        //        ]);
        $data = ['photo' => $photo, 'server' => $server, 'hash' => $hash, 'group_id' => $this->groupId * -1];
        $result = $this->callApi('photos.saveWallPhoto', $data, 'post');
        return $result;
    }
    public function post($publishDate, $photos)
    {
        $data = ['owner_id' => $this->groupId, 'message' => $this->post['text'], 'attachments' => implode(',', $photos), 'publish_date' => $publishDate];
        $result = $this->callApi('wall.post', $data, 'post');
        return $result;
    }
    public function getPhotosByResponse($response)
    {
        $photos = [];
        foreach ($response['response'] as $key => $photo) {
            $photos[] = $photo['id'];
        }
        return $photos;
    }
}
if (isset($_REQUEST['group_id']) && isset($_REQUEST['publish_date'])) {
    $vk = new VkApi($_COOKIE['vk-token'], $_REQUEST['group_id'], $_COOKIE['vk-user-id']);
    $vk->setPost($_REQUEST['post']);
    $result = $vk->curlPost();
    //    PR($result);
    //    die();
    //$photosResponse = $vk->saveWallPhoto($result['photo'], $result['server'], $result['hash']);
    $resPost = $vk->post($_REQUEST['publish_date'], $vk->getPhotosByResponse($result));
    echo json_encode($resPost);
    die;
}
Example #5
0
<?php

//Подключаем класс
require 'vkapi.class.php';
//Создаем объект
$vk = new VkApi('NUMBER APP', 'SECRET KEY', 'REDIRECT URI');
/* --------- Логинемся ---------- */
//Если нет ни в сессии не в GET, то пусть логинится
if (empty($_SESSION['token']) && empty($_GET['code'])) {
    header('Location: ' . $vk->goAuth());
    exit;
}
//Если нет в сессии,но ЕСТЬ GET['code'], то получаем токен
if (empty($_SESSION['token']) && isset($_GET['code'])) {
    $resp = $vk->getToken($_GET['code']);
    if (isset($resp['error'])) {
        echo 'Error: ' . $resp['error_description'];
        //Если ошибка, выводим описание ошибки
    } elseif (isset($resp['access_token'])) {
        echo 'Success: ' . $resp['access_token'];
        //Если все ок, выводим токен и сейвим его в сессию
        $_SESSION['token'] = $resp['access_token'];
    }
}
/* --------- К примеру добавить трек ---------- */
$params = array('audio_id' => '23260363', 'owner_id' => '90522656');
$resp = $vk->goMethod('audio.add', $params, $_SESSION['token']);
echo 'Добавлена: audio' . $params['audio_id'] . '_' . $params['owner_id'] . '<br/>';
/* ------------------- */
Example #6
0
<?php

session_start();
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/debug.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/data.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/db.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/html.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/vk.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/accesscontrol.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/core/config.php';
Debug::DebugControl();
// Управление режимом отладки
Debug::Checkpoint();
// Запуск таймера отладки
Debug::Addlog('HTML::' . $pageName, $_SERVER['SCRIPT_URI']);
// Первая строка в журнале логов
VkApi::UserAuthWidget();
// Авторизация виджетом
$accessRights = AccessControl::AccessCheck();
// Контроль доступа к контенту
Html::Header($pageName, $pageVersion);
Html::MenuLeft();
Html::ContentPage($contentPage);
Html::Footer();
die;
Example #7
0
 public function UserLoginCode()
 {
     global $code, $access_token, $debugLog, $debugMode, $vkApi_id, $vkApi_key, $valid_user, $uid, $first_name, $last_name, $screen_name, $photo_50, $photo_200;
     $tempDebugMode = $debugMode;
     // Сохранение глобального значения во временную переменную
     $debugMode = false;
     // Внутренний вкл/выкл. режима отладки
     static $funcName = 'VkApi::LoginCode';
     // Название функции для логов
     Debug::Addlog($funcName, 'Начало работы функции.');
     //if (!empty($code)) { // Получен код авторизации
     if (!empty($_GET['code'])) {
         // Получен код авторизации
         $code = $_GET['code'];
         Debug::Addlog($funcName, 'code » Получен код авторизации.');
         Debug::Addlog($funcName, 'code » Выполняем запрос к серверу ВК.');
         $json = file_get_contents("https://oauth.vk.com/access_token?client_id={$vkApi_id}&client_secret={$vkApi_key}&code={$code}&redirect_uri=" . $_SERVER['SCRIPT_URI']);
         if ($json) {
             // Получен корректный ответ от сервера ВК
             Debug::Addlog($funcName, 'code » Код авторизации корректный.');
             Debug::Addlog($funcName, 'code » Получен ответ от сервера ВК.');
             $obj = json_decode($json);
             // Получаем токен
             $access_token = $obj->{'access_token'};
             Debug::Addlog($funcName, 'code » Получен токен доступа.');
             $apiResponse = VkApi::api("users.get", "fields=photo_200,photo_50,screen_name");
             Debug::Addlog($funcName, 'code » Получены данные пользователя.');
             $valid_user = $apiResponse->response[0];
             $uid = $apiResponse->response[0]->uid;
             $first_name = $apiResponse->response[0]->first_name;
             $last_name = $apiResponse->response[0]->last_name;
             $screen_name = $apiResponse->response[0]->screen_name;
             $photo_50 = $apiResponse->response[0]->photo_50;
             $photo_200 = $apiResponse->response[0]->photo_200;
             // Регистрируем пользователя в сессии
             Debug::Addlog($funcName, 'code » Регистрируем пользователя в сессии.');
             unset($_SESSION['valid_user']);
             unset($_SESSION['uid']);
             unset($_SESSION['first_name']);
             unset($_SESSION['last_name']);
             unset($_SESSION['screen_name']);
             unset($_SESSION['photo_50']);
             unset($_SESSION['photo_200']);
             unset($_SESSION['access_token']);
             $_SESSION['valid_user'] = $valid_user;
             $_SESSION['uid'] = $uid;
             $_SESSION['first_name'] = $first_name;
             $_SESSION['last_name'] = $last_name;
             $_SESSION['screen_name'] = $screen_name;
             $_SESSION['photo_50'] = $photo_50;
             $_SESSION['photo_200'] = $photo_200;
             $_SESSION['access_token'] = $access_token;
             // Регистрируем пользователя в куках на 10 лет
             Debug::Addlog($funcName, 'code » Регистрируем пользователя в куках.');
             setcookie("uid", $uid, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("first_name", $first_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("last_name", $last_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("screen_name", $screen_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("photo_50", $photo_200, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("photo_200", $photo_200, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("access_token", $access_token, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             Debug::Addlog($funcName, 'code » Обновление страницы...<br>');
             $debugMode = $tempDebugMode;
             // Возвращение переменной глобального значения
             http_redirect($_SERVER['SCRIPT_URI']);
         } else {
             // Некорректный код авторизации
             Debug::Addlog($funcName, '!code » Ошибка! » Некорректный код авторизации. Завершение работы.<br>');
             $debugMode = $tempDebugMode;
             // Возвращение переменной глобального значения
             return false;
         }
     } elseif (!empty($_COOKIE['access_token']) && !empty($_COOKIE['uid'])) {
         // Получены регистрационные данные из куков
         $access_token = $_COOKIE['access_token'];
         Debug::Addlog($funcName, 'cookie » Получены регистрационные данные из куков.');
         Debug::Addlog($funcName, 'cookie » Посылаем запрос на сервер ВК для проверки актуальности рег.данных.');
         $apiResponse = VkApi::api("users.get", "fields=photo_200,photo_50,screen_name");
         //$apiResponse = VkApi::curlPost("https://api.vk.com/method/users.get?fields=photo_200,screen_name&access_token=$access_token");
         //$cookiecheck = json_decode($apiResponse);
         if (isset($apiResponse->error)) {
             // Куки устарели
             Debug::Addlog($funcName, '!cookie » Ошибка! » Регистрационные данные устарели. Завершение работы.<br>');
             $debugMode = $tempDebugMode;
             // Возвращение переменной глобального значения
             http_redirect("https://oauth.vk.com/authorize?client_id=" . $vkApi_id . "&scope=photos,groups,offline,stats,audio,video,wall,docs&redirect_uri=" . $_SERVER['SCRIPT_URI'] . "&response_type=code&v=5.27");
             //return $apiResponse;
         } else {
             // Куки актуальны
             Debug::Addlog($funcName, 'cookie » Регистрационные данные актуальны.');
             $valid_user = $apiResponse->response[0];
             $uid = $apiResponse->response[0]->uid;
             $first_name = $apiResponse->response[0]->first_name;
             $last_name = $apiResponse->response[0]->last_name;
             $screen_name = $apiResponse->response[0]->screen_name;
             $photo_50 = $apiResponse->response[0]->photo_50;
             $photo_200 = $apiResponse->response[0]->photo_200;
             // Регистрируем пользователя в сессии
             Debug::Addlog($funcName, 'cookie » Регистрируем пользователя в сессии.');
             unset($_SESSION['valid_user']);
             unset($_SESSION['uid']);
             unset($_SESSION['first_name']);
             unset($_SESSION['last_name']);
             unset($_SESSION['screen_name']);
             unset($_SESSION['photo_50']);
             unset($_SESSION['photo_200']);
             unset($_SESSION['access_token']);
             $_SESSION['valid_user'] = $valid_user;
             $_SESSION['uid'] = $uid;
             $_SESSION['first_name'] = $first_name;
             $_SESSION['last_name'] = $last_name;
             $_SESSION['screen_name'] = $screen_name;
             $_SESSION['photo_50'] = $photo_50;
             $_SESSION['photo_200'] = $photo_200;
             $_SESSION['access_token'] = $access_token;
             // Регистрируем пользователя в куках на 10 лет
             Debug::Addlog($funcName, 'cookie » Обновляем рег. данные в куках.');
             setcookie("uid", $uid, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("first_name", $first_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("last_name", $last_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("screen_name", $screen_name, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("photo_50", $photo_200, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("photo_200", $photo_200, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             setcookie("access_token", $access_token, time() + 315360000, '/', $_SERVER['HTTP_HOST']);
             Debug::Addlog($funcName, 'cookie » Завершение работы функции.<br>');
             $debugMode = $tempDebugMode;
             // Возвращение переменной глобального значения
             return true;
         }
     } else {
         // Просмотр страницы без регистрации
         //Debug::Addlog($funcName,'!code & !cookie » Отсутствует код авторизации.');
         Debug::Addlog($funcName, '!code & !cookie » Работа в неавторизованном режиме. Завершение работы.<br>');
         $debugMode = $tempDebugMode;
         // Возвращение переменной глобального значения
         return false;
     }
 }