Привет, может кто сталкивался с такой проблемой? Создаю пост через апи ok, фото и текст публикуется хорошо, а вот видео нет. Права у приложения есть (VIDEO_CONTENT и GROUP_CONTENT) После публикация, я вижу видео на стене группы (значит оно загружается?), а вот другие пользователи нет, если зайти во вкладку Темы, то там будет текст поста и вместо видео надпись "Видео удалено или не является публично доступным". Пробовал загружать другое видео, то же самое. Если загрузить те же самые файлы, но только в ручную, то все хорошо публикуется. Помогите пожалуйста( Как выглядит пост: Так как фото и текст публикуется верно, то я не думаю что проблема в авторизации и в генерации подписи sig Вот так выглядит запрос получения url params = { "method": "video.getUploadUrl", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "gid": self.gid, "file_name": os.path.basename(file_path), "file_size": file_size, "post_form": 1 } params["sig"] = self.get_sig(params) response = requests.get(self.url, params=params) Python params = { "method": "video.getUploadUrl", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "gid": self.gid, "file_name": os.path.basename(file_path), "file_size": file_size, "post_form": 1 } params["sig"] = self.get_sig(params) response = requests.get(self.url, params=params) Получаю ид видео и ссылку для загрузки. Вот так вот загружаю видео: mime_type, _ = mimetypes.guess_type(file_path) if not mime_type: mime_type = "video/mp4" with open(file_path, 'rb') as f: files = {"file": (os.path.basename(file_path), f, mime_type)} upload_response = requests.post(upload_url, files=files) Python mime_type, _ = mimetypes.guess_type(file_path) if not mime_type: mime_type = "video/mp4" with open(file_path, 'rb') as f: files = {"file": (os.path.basename(file_path), f, mime_type)} upload_response = requests.post(upload_url, files=files) И вызываю метод обновления: update_params = { "method": "video.update", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "vid": video_id, } update_params["sig"] = self.get_sig(update_params) Python update_params = { "method": "video.update", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "vid": video_id, } update_params["sig"] = self.get_sig(update_params)
после загрузки видео через video.getUploadUrl и загрузки файла через полученную ссылку, тебе нужно дополнительно вызвать метод video.setPrivacy чтобы сделать видос публичным
privacy_params = { "method": "video.setPrivacy", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "vid": video_id, "privacy": "all" } privacy_params["sig"] = self.get_sig(privacy_params) response = requests.post(self.url, data=privacy_params) Python privacy_params = { "method": "video.setPrivacy", "application_key": self.app_key, "format": "json", "access_token": self.access_token, "vid": video_id, "privacy": "all" } privacy_params["sig"] = self.get_sig(privacy_params) response = requests.post(self.url, data=privacy_params)
противоположник, Скорее всего, вы подумали про соц. сеть VK, мне же нужно для OK (Одноклассники). У них нет метода video.setPrivacy, но в методе video.update, есть ""privacy": "PUBLIC"", который так же не работает((
Разобрался. Сначала вызываем метод video.getUploadUrl. Загружаем видео. Создаем пост mediatopic.post И уже после вызываем video.update