yarhosting
@yarhosting
Заказывайте программинг: PHP,SQL, JS,jQuery,Joomla

Не прикрепляется картинка к посту в группу, в то время как этот же код прикрепляет картинку к посту на стену пользователя. Что не так делаю?

Не прикрепляется картинка к посту в группу, в то время как этот же код прикрепляет картинку к посту на стену пользователя. Что не так делаю?
Так же пробовал вместо $nam использовать owner_id (в некоторых примерах используют, хотя в доках апи контакта - такого нет) в группе не работает у пользователя - работает.

$group_id='-153622138'; //id сообщества
// $group_id='10085174';//id юзера


// почему то без этой хрени не работает, сокорее всего из-за версии php. Этот костыль нашел, когда ругалось на curl_file_create
if (!function_exists('curl_file_create')) {
	function curl_file_create($filename, $mimetype = '', $postname = '') {
		return "@$filename;filename="
			. ($postname ?: basename($filename))
			. ($mimetype ? ";type=$mimetype" : '');
	}
}



$text = 'ТЕСТ';
$image_name = 'test.jpg';
$image = __DIR__ . DIRECTORY_SEPARATOR . $image_name;


if ($group_id<0) {
	$nam='group_id';
} else {
	$nam='user_id';
}
$val=abs($group_id);

$upload_url = vkAPI('photos.getWallUploadServer', [$nam => $val])->response->upload_url;


try {
    $ch = curl_init($upload_url);
    $cfile = curl_file_create($image, mime_content_type($image), $image_name);
	
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ['photo' => $cfile]);
    $responseUpload = json_decode(curl_exec($ch));
	curl_close($ch);
    echo 'Картинка успешно загружена<br>';
} catch (Exception $e) {
    exit('Неизвестная ошибка при попытке загрузки картинки '.$e);
}




$responseSave = vkAPI('photos.saveWallPhoto', [
    $nam => $val,
    'photo' => stripslashes($responseUpload->photo),
    'server' => $responseUpload->server,
    'hash' => $responseUpload->hash,
]);
if ($responseSave->error) {
	var_dump($responseSave);
    exit('Неизвестная ошибка при попытке сохранения картинки ');
} else {
    echo 'Картинка успешно сохранена<br>';
}

echo 'photo'.$group_id.'_'.$responseSave->response[0]->id;


$responsePost = vkAPI('wall.post', [
    'owner_id' => $group_id,
    'message' => $text,
    'attachments' => 'photo'.$group_id.'_'.$responseSave->response[0]->id,
    'hash' => $responseSave->response[0]->hash,
]);
if ($responsePost->error) {
    if ($responsePost->error->error_code == 214) {
        exit('Стена закрыта для постинга');
    } else {
		var_dump($responsePost->error);
        exit('Неизвестная ошибка при попытке постинга');
    }
} else {
    echo 'Пост успешно добавлен';
}
function vkAPI($method, array $data = [])
{
	global $config;
    $params = [];
    foreach ($data as $name => $val) {
        $params[$name] = $val;
        $params['access_token'] = $config->vk_token;
        $params['v'] = $config->vk_version;
    }
    $json = file_get_contents('https://api.vk.com/method/' . $method . '?' . http_build_query($params));
    return json_decode($json);
}
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы