Собственно не получается загрузить фото в альбом группы вк, себе на стену грузить получается, но ни в альбом ни в альбом группы никак
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) {
$params = array();
if( $group_id ) {
$params['gid'] = $group_id;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/log', 'group_id '.print_r($params['gid'],true),FILE_APPEND | LOCK_EX);
}
//Получаем сервер для загрузки изображения
$response = $this->method("photos.getUploadServer", $params);
if( isset($response) == false ) {
print_r($response);
exit;
}
$server = $response->response->upload_url;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/log', ' server '.print_r($server,true),FILE_APPEND | LOCK_EX);
//Отправляем файл на сервер
$ch = curl_init($server);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => class_exists("CURLFile", false) ? new CURLFile($file) : "@" . $file));
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->photo),
"hash" => $json->hash,
"album_id" => 228603162,
"gid" => $group_id
));
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/log', ' photo '.print_r($photo,true),FILE_APPEND | LOCK_EX);
if( isset($photo->response[0]->id) ) {
return $photo->response[0]->id;
} else {
return false;
}
}
}
вызываю
$vk = new Model_Vk($access_token);
$upload_img = $vk->uploadImage($image_path, $group_id);
если сервер для загрузки изображений photos.getUploadServer
то получаю
[error_code] => 118
[error_msg] => Invalid server
если photos.getWallUploadServer то
[error_msg] => Invalid hash
Где что не так?