Общий алгоритм такой:
1. Запросите права через поддержку ВК. Я вот эти запрашивал: wall photos. При запросе прав, нужно вкратце описать, что за приложение у вас и для каких целей нужны права.
2. Запросите токен доступа с указанными правами.
3. Получите "upload_url" через метод АПИ photos.getWallUploadServer
4. Передайте фотографию на полученный upload_url. За один раз передается одна фотография. Если нужно передать 10, то делаем 10 запросов по 1 фотографии.
5. Сохранение фотографий на сервере ВК. Передаем то, что получили на 4 шаге. Метод АПИ photos.saveWallPhoto. На этом шаге, мы говорим ВК, что хотим сохранить фотографии в системном альбоме. Фото из системного альбома ни кому не видны.
6. Опубликуем пост с фотографиями через метод АПИ wall.post. В параметре "attachments" укажем идентификаторы фотографий с 5 шага. Формат идентификатора смотрите в описании метода wall.post.
Если возникают ошибки с правами доступа, то смело пишите в поддержку с указанием, какие методы используете и какую ошибку получаете. Они в ручном режиме дают доступы)