API Вконтакте
API Вконтакте
Объясните как в yii работать с API Вконтакте? Какую библиотеку нужно скачать, мне например, нужно получить комментарий у определенного поста. Это есть в api вк. Но как это сделать в yii не пойму.
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Ищем пакеты: https://packagist.org/search/?q=vk-api
Смотрим первый попавшийся: https://packagist.org/packages/vladkens/vk
Читаем описание на GitHub: https://github.com/vladkens/VK
Устанавливаем:
И включаем:
В API находим метод: https://vk.com/dev/wall.getComments
И используем:
Но каждый раз создавать экземпляр нам весьма лениво. Для красоты напишем компонент-обёртку:
Объявляем его в конфиге:
И используем теперь где угодно:
Десять минут стараний и... страшный пункт ТЗ по интеграции выполнен.
Смотрим первый попавшийся: https://packagist.org/packages/vladkens/vk
Читаем описание на GitHub: https://github.com/vladkens/VK
Устанавливаем:
Код: Выделить всё
composer require vladkens/vk:"dev-master"
Код: Выделить всё
$vk = new \VK\VK('{APP_ID}', '{API_SECRET}');
И используем:
Код: Выделить всё
$vk->api('wall.getComments', ['post_id' => ...]);
Код: Выделить всё
class VKApi extends Component
{
public $appId;
public $apiSecret;
public $accessToken = null;
private $_vk;
public function init() {
$this->_vk = new \VK\VK($this->appId, $this->apiSecret, $this->accessToken);
parent::init();
}
public function getAuthorizeURL($apiSettings, $callbackUrl) {
return $this->_vk->getAuthorizeURL($apiSettings, $callbackUrl);
}
public function getAccessToken($code) {
return $this->_vk->getAccessToken($code);
}
public function isAuth() {
return $this->_vk->isAuth();
}
public function api($method, $params = []) {
return $this->_vk->api($method, $params);
}
}
Код: Выделить всё
'components' => [
...
'vk' => [
'class' => '\app\components\VKApi',
'appId' => '...',
'apiSecret' => '...',
'accessToken' => null,
],
],
Код: Выделить всё
Yii::$app->vk->api('wall.getComments', ['post_id' => ...]);
Последний раз редактировалось ElisDN 2015.07.08, 22:28, всего редактировалось 1 раз.
Re: API Вконтакте
Спасибо. У вас крутые мастер классы, спасибо вам еще раз
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Выдает ошибку Getting unknown property: app\components\VKApi::ippId
Установил, Создал папку components/VKApi.php , но сомневаюсь что прописал перед классом необходимое, потому что подсвечивается код (getAuthorizeURL, getAccessToken и т.п.)
namespace app\components;
use Yii;
use yii\base\Component;
В web.php прописал все.
В чем может быть проблема?
Установил, Создал папку components/VKApi.php , но сомневаюсь что прописал перед классом необходимое, потому что подсвечивается код (getAuthorizeURL, getAccessToken и т.п.)
namespace app\components;
use Yii;
use yii\base\Component;
В web.php прописал все.
В чем может быть проблема?
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Точно! Спасибо.
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Подскажите, пожалуйста, а как получить токен? Нужен токен, но в данном примере он равен нулю. В документации пишут из ссылки получить, но я не могу понять как.ElisDN писал(а):Ищем пакеты: https://packagist.org/search/?q=vk-api
Смотрим первый попавшийся: https://packagist.org/packages/vladkens/vk
Читаем описание на GitHub: https://github.com/vladkens/VK
Устанавливаем:
И включаем:Код: Выделить всё
composer require vladkens/vk:"dev-master"
В API находим метод: https://vk.com/dev/wall.getCommentsКод: Выделить всё
$vk = new \VK\VK('{APP_ID}', '{API_SECRET}');
И используем:
Но каждый раз создавать экземпляр нам весьма лениво. Для красоты напишем компонент-обёртку:Код: Выделить всё
$vk->api('wall.getComments', ['post_id' => ...]);
Объявляем его в конфиге:Код: Выделить всё
class VKApi extends Component { public $appId; public $apiSecret; public $accessToken = null; private $_vk; public function init() { $this->_vk = new \VK\VK($this->ippId, $this->apiSecret, $this->accessToken); parent::init(); } public function getAuthorizeURL($apiSettings, $callbackUrl) { return $this->_vk->getAuthorizeURL($apiSettings, $callbackUrl); } public function getAccessToken($code) { return $this->_vk->getAccessToken($code); } public function isAuth() { return $this->_vk->isAuth(); } public function api($method, $params = []) { return $this->_vk->api($method, $params); } }
И используем теперь где угодно:Код: Выделить всё
'components' => [ ... 'vk' => [ 'class' => '\app\components\VKApi', 'appId' => '...', 'apiSecret' => '...', 'accessToken' => null, ], ],
Десять минут стараний и... страшный пункт ТЗ по интеграции выполнен.Код: Выделить всё
Yii::$app->vk->api('wall.getComments', ['post_id' => ...]);
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Подскажите, вы создали обертку VK API, но если я передаю не пустой токен, а токен, который получил, то все время выводит ошибку. Подскажите, в чем дело, пожалуйста. Не могу сдвинуться с места.ElisDN писал(а):...
Код: Выделить всё
VK\VKException
Invalid access token.
1. in /var/www/admin/www/my.com/vendor/vladkens/vk/src/VK/VK.php at line 99
* Set Access Token.
* @param string $access_token
* @throws VKException
* @return void
*/
public function setAccessToken($access_token)
{
$this->auth = $this->checkAccessToken();
if (!$this->auth) {
throw new VKException('Invalid access token.');
} else {
$this->access_token = $access_token;
}
}
Будущее за нами | Спасибо разработчикам yii2 и всему русскому комьюнити по нему
Re: API Вконтакте
Поковыряйтесь в методе checkAccessToken(). Проверьте, что там возвращается в $this->api('getUserSettings').
Re: API Вконтакте
Пытаюсь тоже парсить вк
пишет ошибку
Код: Выделить всё
public function actionVkgroups()
{
require('../vendor/vladkens/vk/src/VK/VK.php');
$vk = new VK('4784354', 'Jx5cUkk6jnTnJly5KxmO');
$vk->api('wall.getComments', ['post_id' => 1]);
return $this->render('vkgroups', ['vk' => $vk] );
}
Код: Выделить всё
Class 'app\controllers\VK\VK' not found
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: API Вконтакте
http://php.net/manual/en/language.namespaces.phpkrosh87 писал(а):Пытаюсь тоже парсить вк
пишет ошибкуКод: Выделить всё
public function actionVkgroups() { require('../vendor/vladkens/vk/src/VK/VK.php'); $vk = new VK('4784354', 'Jx5cUkk6jnTnJly5KxmO'); $vk->api('wall.getComments', ['post_id' => 1]); return $this->render('vkgroups', ['vk' => $vk] ); }
Код: Выделить всё
Class 'app\controllers\VK\VK' not found
Re: API Вконтакте
объясните поподробнее плиз
в контроллере уже стоит
пытаюсь получить информацию со старицы и ошибок не выдает и пустой массив возвращает
в контроллере уже стоит
Код: Выделить всё
namespace app\controllers;
public function actionVkgroups()
{
error_reporting(E_ALL);
require_once('../vendor/vladkens/vk/src/VK/VK.php');
require_once('../vendor/vladkens/vk/src/VK/VKException.php');
try {
$vk = new \VK\VK('111111', '*********************'); // Use your app_id and api_secret
$users = $vk->api('users.get',
[ 'user_ids' => '1',
'fields' => 'first_name,last_name,sex']);
/* foreach ($users['response'] as $user) {
echo $user['first_name'] . ' ' . $user['last_name'] . ' (' .
($user['sex'] == 1 ? 'Girl' : 'Man') . ')<br />';
} */
echo '111';
print_r($users);
}
catch (VK\VKException $error) {
echo $error->getMessage();
}
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: API Вконтакте
require_once('../vendor/vladkens/vk/src/VK/VK.php');
require_once('../vendor/vladkens/vk/src/VK/VKException.php');
от этого вас избавляет композер, который генерит автозагрузчики для всех устанволенных через него либ.
require_once('../vendor/vladkens/vk/src/VK/VKException.php');
от этого вас избавляет композер, который генерит автозагрузчики для всех устанволенных через него либ.
Re: API Вконтакте
Код: Выделить всё
public function actionVkgroups()
{
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
try {
$vk = new \VK\VK('111111', '********************'); // Use your app_id and api_secret
$users = $vk->api('users.get',
[ 'user_ids' => '222222',
'fields' => 'first_name,last_name,sex']);
foreach ($users['response'] as $user) {
echo $user['first_name'] . ' ' . $user['last_name'] . ' (' .
($user['sex'] == 1 ? 'Женщина' : 'Мужчина') . ')<br />';
}
}
catch (VK\VKException $error) {
echo $error->getMessage();
}
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: API Вконтакте
что не кто не в курсе, почему на локальном компьютере данные парсятся, а на хостинге пустой массив
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: API Вконтакте
Марс не в созвездии Водолеяkrosh87 писал(а):что не кто не в курсе, почему на локальном компьютере данные парсятся, а на хостинге пустой массив
Re: API Вконтакте
ретурн урл же когда апп регистрируешь (fp)
Re: API Вконтакте
FireBag пишет "NetworkError: 500 Internal Server Error
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: API Вконтакте
Настрой http://joxi.ru/12MpqP5syyDKmJkrosh87 писал(а):что не кто не в курсе, почему на локальном компьютере данные парсятся, а на хостинге пустой массив
Хотите купить дешёвый, быстрый и качественный VPS сервер, моим выбором стал Rootwelt. Всем советую, не прогадаете