Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
VkPosting.php
Содержимое
<?php namespace app\core\social\vk; use App; use app\core\social\Posting; use app\core\social\vk\logger\VkLoggerInterface; use app\core\social\vk\logger\VkPostingLog; /** * Класс для постинга РІ РіСЂСѓРїРїСѓ Р’Рљ * * Ртот класс - высокоуровневая обертка над VkApi Рё этот класс зависит РѕС‚ VkApi. * * Пример использования: * ```php * (new VkPosting(GROUP_ID, ACCESS_TOKEN) * ->text("Лучшая публикация РІ Р’Рљ") * ->addImage("/path/to/image.png") * ->addImage("/path/to/image2.png") * ->addImage("/path/to/image3.png") * ->link("http://infoorel.ru") * ->send(); // вернется идентификатор публикации (РЅРѕ этот метод может зависеть РѕС‚ реализации) . * * ``` * * https://oauth.vk.com/authorize?client_id=7788487&redirect_uri=https://oauth.vk.com/blank.html&scope=photos,docs,video,wall,offline,pages,video,audio&response_type=token&v=5.92 * * Class VkPosting * @package app\core\social\vk */ class VkPosting extends Posting { /** * @var VkApi экземпляр класса, через который будем отправлять запрос. */ private $_vkApi; /** * @var int идентификатор РіСЂСѓРїРїС‹, РєСѓРґР° публикуем сообщение */ private $_groupId; private $_logger; /** * Конструктор РІ качестве параметра принимает идентификатор РіСЂСѓРїРїС‹, РІ которую публикуем сообщение * * VkPosting constructor. * @param string|int $groupId * @param VkApi $vkApi - API интерфейс, через который будем публиковать запись. * @param VkLoggerInterface $logger - экземпляр класса, который будет учитывать логи. */ public function __construct($groupId, VkApi $vkApi, VkLoggerInterface $logger) { if ($groupId < 0) { $groupId = abs($groupId); } $this->_groupId = $groupId; $this->_vkApi = $vkApi; $this->_logger = $logger; } /** * Рта функция возвращает экземпляр текущего класса, РІ который ставит параметры РёР· конфигурации приложения (сайта) * @return VkPosting */ public static function instance() { $vkApi = new VkApi(App::$config['posting']['vk']['access_token']); return new static(App::$config['posting']['vk']['group_id'], $vkApi, new VkPostingLog()); } public function getGroupId() { return -$this->_groupId; } /** * Рта функция отправляет запрос РІ Р’Рљ Рё возвращает идентификатор записи, если запись успешно создана Рё false, * если РЅРµ удалось отправить данные. * * @return false|int * @throws \Exception - вызывается, РєРѕРіРґР° РЅРµ удалось сохранить изображение РЅР° сервере */ public function send() { $uploadedImages = []; foreach ($this->getImages() as $image) { try { $uploadedImages[] = $this->_vkApi->uploadPhoto($this->_groupId, $image); } catch (\Exception $e) { $this->_logger->add($e->getMessage() . ', ' . $image . json_encode($this->_vkApi->getLastResponse())); } } $text = $this->getText(); if ($this->getLink() != null) { $text .= "\r\n" . $this->getLink(); } // если есть видео, то загружаем его Рё РЅРµ создаем обычный РїРѕСЃС‚ РІ РІРє // так как через загрузку видео РјС‹ можем создать отдельный РїРѕСЃС‚. $uploadedVideos = []; foreach ($this->getVideos() as $videoUrl) { $uploadedVideos[] = $this->_vkApi->uploadVideo($this->_groupId, $videoUrl, $text); } $response = $this->_vkApi->postToGroup($this->_groupId, $text, $uploadedImages, $uploadedVideos); $this->_logger->add(json_encode($this->_vkApi->getLastResponse())); if (isset($response->post_id)) { return $response->post_id; } return false; } }
/app/core/social/vk/
Имя
Дата
Размер
..
2019-02-01
comments
2019-02-08
logger
2019-02-06
observer
2019-02-01
VkApi.php
2026-07-02
13 кб.
VkApi.php~
2021-09-15
7 кб.
VkPosting.php
2026-06-19
5 кб.
VkPosting.php~
2021-03-12
5 кб.
VkPostingTest.php
2019-01-30
311 байт
VkWallCommentsApi.php
2019-02-01
2 кб.
/app/core/social/vk
Загрузить файлы
Файл 1
Файл 2
Файл 3