Есть скрипт постинга постов с добавлением фотографий, он полностью рабочий, просто нужно сделать несколько фотографий В коде дописал что пробовал сделать
$token = 'токен';
$group_id = 'ид группы';
$vk = new Vk($token);
$image_path = 'image.png';
$image_path1 = '111.jpg';
$upload_server = $vk->photosGetWallUploadServer($group_id);
$upload = $vk->uploadFile($upload_server['upload_url'], $image_path);// дописывал ', $image_path1'
$save = $vk->photosSaveWallPhoto([
'group_id' => $group_id,
'photo' => $upload['photo'],
'server' => $upload['server'],
'hash' => $upload['hash']
]
);
$attachments = sprintf('photo%s_%s', $save[0]['owner_id'], $save[0]['id']);
$post = $vk->wallPost([
'owner_id' => "-$group_id",
'from_group' => 1,
'message' => "блаблабла",
'attachments' => $attachments
]);
class Vk
{
private $token;
private $v = '5.37';
public function __construct($token)
{
$this->token = $token;
}
public function wallPost($data)
{
return $this->request('wall.post', $data);
}
public function photosGetWallUploadServer($group_id)
{
$params = [
'group_id' => $group_id,
];
return $this->request('photos.getWallUploadServer', $params);
}
/**
* @param $params [user_id, group_id, photo, server, hash]
* @return mixed
* @throws \Exception
*/
public function photosSaveWallPhoto($params)
{
return $this->request('photos.saveWallPhoto', $params);
}
public function uploadFile($url, $path, $path1)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
$post_data = array('file1' => new \CURLFile($path1), 'file2' => new \CURLFile($path1));
if (class_exists('\CURLFile')) {
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file1' => new \CURLFile($path1)]);// тут пробовал заменял ['file1' => new \CURLFile($path1)] на $post_data
} else {
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file1' => "@$path"]);
}
$data = curl_exec($ch);
curl_close($ch);
return json_decode($data, true);
}
private function request($method, array $params)
{
$params['v'] = $this->v;
$ch = curl_init('https://api.vk.com/method/' . $method . '?access_token=' . $this->token);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$data = curl_exec($ch);
curl_close($ch);
$json = json_decode($data, true);
if (!isset($json['response'])) {
throw new \Exception($data);
}
usleep(mt_rand(1000000, 2000000));
return $json['response'];
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Впервые столкнулся с группировкой, поэтому не знаю как из монго это делать правильноЕсть коллекции вида
Есть массив двумерный массив $result[$a][$b]У каждого $a есть несколько ячеек $b