Постинг постов в группу с фотографией Вконтакте

252
14 июля 2017, 05:48

Есть скрипт постинга постов с добавлением фотографий, он полностью рабочий, просто нужно сделать несколько фотографий В коде дописал что пробовал сделать

$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'];
    }
}
READ ALSO
группировка выборки из mongodb

группировка выборки из mongodb

Впервые столкнулся с группировкой, поэтому не знаю как из монго это делать правильноЕсть коллекции вида

312
как записать значение в первую ячейку двумерного массива?

как записать значение в первую ячейку двумерного массива?

Есть массив двумерный массив $result[$a][$b]У каждого $a есть несколько ячеек $b

286