Задать вопрос
  • Как загружать фото в альбом группы вконтакте?

    @green176 Автор вопроса
    Поколупался и дошел до финала, постить получается, код рабочий!
    class Model_Vk {
    
        private $access_token;
        private $url = "https://api.vk.com/method/";
    
        /**
         * Конструктор
         */
        public function __construct($access_token) {
    
            $this->access_token = $access_token;
        }
    
        /**
         * Делает запрос к Api VK
         * @param $method
         * @param $params
         */
        public function method($method, $params = null) {
    
            $p = "";
            if( $params && is_array($params) ) {
                foreach($params as $key => $param) {
                    $p .= ($p == "" ? "" : "&") . $key . "=" . urlencode($param);
                }
            }
            $response = file_get_contents($this->url . $method . "?" . ($p ? $p . "&" : "") . "access_token=" . $this->access_token);
    
            if( $response ) {
                return json_decode($response);
            }
            return false;
        }
    
    	public function uploadImage($file, $group_id = null, $album_id = null) {
    
    		$params = array();
    		if( $group_id ) {
    			$params['group_id'] = $group_id;
    		}
    		if( $album_id ) {
    			$params['album_id'] = $album_id;
    		}
    
    		//Получаем сервер для загрузки изображения
    		$response = $this->method("photos.getUploadServer", $params);
    
    
    		if( isset($response) == false ) {
    			print_r($response);
    			exit;
    		}
    		
    		$server = $response->response->upload_url;
    
    		$postparam=array("file1"=>"@".$file);
    		//Отправляем файл на сервер
    		$ch = curl_init($server);
    		curl_setopt($ch, CURLOPT_POST, true);
    		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    		curl_setopt($ch, CURLOPT_POSTFIELDS,$postparam);
    		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data; charset=UTF-8'));
    		$json = json_decode(curl_exec($ch));
    		curl_close($ch);
    
    
    		
    
    		
    		//Сохраняем файл в альбом
    		$photo = $this->method("photos.save", array(
    			"server" => $json->server,
    			"photos_list" => $json->photos_list,
    			"album_id" => $album_id,
    			"hash" => $json->hash,
    			'gid' => $group_id
    		));
    		
    
    		if( isset($photo->response[0]->id) ) {
    			return $photo->response[0]->id;
    		} else {
    			return false;
    		}
    	}
    }

    Использование:
    необходим токен, standalone приложение, токен получаем по ссылке
    https://oauth.vk.com/authorize?client_id=YOUR_APP_...
    где YOUR_APP_ID - id вашего приложения
    копируем его из адресной строки
    $access_token = "токен";
    $group_id = "ид группы";
    $album_id = 'ид альбома в который будем грузить';
    $image_path = путь к файлу;
    
    $vk = new Model_Vk($access_token);
    
    //Загружаем изображение
    $upload_img = $vk->uploadImage($image_path,$group_id,$album_id);
    Ответ написан
    Комментировать
  • Geotargeting на wordpress, как реализовать?

    roman_tlt
    @roman_tlt
    Разработка и продвижение сайтов
    Для геолокации и настройки геотаргетинга можно воспользоваться бесплатным плагином WT Geotargeting. Есть расширенная платная версия WT Geotargeting Pro, с поддержкой поддоменов и WooCommerce, но многие ограничиваются бесплатной версией и довольны.
    Ответ написан
    Комментировать