Подключил VK api SDK, с первого взгляда удобно, но я столкнулся с проблемой!
По идеи, мне нужно всего лишь было подключить autoload.php и наслаждаться готовым решение.
На выходе получилось что функции не подгружаются автоматически и для того, чтобы пользоваться SDK в каждом файле, к каждой функции и/или классу нужно третью ногу лепить.
Так должно быть:
$vk = new VKApiClient(VER);
$oauth = new VKOAuth();
$client_id = API_CLIENT_ID;
$redirect_uri = REDIR;
$display = VKOAuthDisplay::PAGE;
$scope = array(VKOAuthUserScope::WALL,
VKOAuthUserScope::GROUPS,
VKOAuthUserScope::EMAIL,
VKOAuthUserScope::STATS,
VKOAuthUserScope::OFFLINE
);
$browser_url = $oauth->getAuthorizeUrl(VKOAuthResponseType::CODE, $client_id, $redirect_uri, $display, $scope, $state);
Но для того, чтобы это заработало, приходится делать так
$vk = new \VK\Client\VKApiClient(VER);
$oauth = new \VK\OAuth\VKOAuth();
$client_id = API_CLIENT_ID;
$redirect_uri = REDIR;
$display = \VK\OAuth\VKOAuthDisplay::PAGE;
$scope = array(\VK\OAuth\Scopes\VKOAuthUserScope::WALL,
\VK\OAuth\Scopes\VKOAuthUserScope::GROUPS,
\VK\OAuth\Scopes\VKOAuthUserScope::EMAIL,
\VK\OAuth\Scopes\VKOAuthUserScope::STATS,
\VK\OAuth\Scopes\VKOAuthUserScope::OFFLINE
);
$browser_url = $oauth->getAuthorizeUrl(\VK\OAuth\VKOAuthResponseType::CODE, $client_id, $redirect_uri, $display, $scope, $state);
Или так
use \VK\OAuth\VKOAuth;
use \VK\OAuth\ResponseType;
use \VK\Exceptions\VKClientException;
use \VK\Exceptions\VKOAuthException;
use \VK\OAuth\Scope\VKOAuthUserScope;
...
...
$vk = new VKApiClient(VER);
$oauth = new VKOAuth();
$client_id = API_CLIENT_ID;
$redirect_uri = REDIR;
$display = VKOAuthDisplay::PAGE;
$scope = array(VKOAuthUserScope::WALL,
VKOAuthUserScope::GROUPS,
VKOAuthUserScope::EMAIL,
VKOAuthUserScope::STATS,
VKOAuthUserScope::OFFLINE
);
$browser_url = $oauth->getAuthorizeUrl(VKOAuthResponseType::CODE, $client_id, $redirect_uri, $display, $scope, $state);
И все бы ничего, но там их достаточно много и если один не подключишь, сразу получаешь ошибку 500... При этом, я еще не знаю как правильно прописать путь функциям в таком случае (для Users() и get(), схема выше тут не играет...):
$UserInfo = $vk->Users()->get($UserToken['access_token'], array(
'user_ids' => $UserToken['user_id'],
'access_token' => $UserToken['access_token'],
));
Очень прошу уделить немного своего драгоценного времени и поделиться мудростью.
Возможно решение на поверхности, я просто в силу своих малых познаний его не вижу...
зы: так же среди файлов SDK я наткнулся на такой класс как например GenerateActions, пытаясь выяснить что это и с чем едят, пошел курить мануал, но там об этом ничего, вообще ничего. И в целом все что я находил в сети по вопросу работы с SDK, либо самое простое в виде авторизации, либо сразу сложное. Такое ощущение, как раньше книгу читаешь - сегодня мы начнем учиться программировать - echo "Hello world"; выведет сообщение... А теперь давайте пример сложнее и сразу столько информации выливают на тебя...
Спасибо!