Загрузка...

Как правильно сделать пост с видео в группу ок

Тема в разделе Python создана пользователем Mr_Marmeladka 21 янв 2025. 187 просмотров

  1. Mr_Marmeladka
    Mr_Marmeladka Автор темы 21 янв 2025 9 26 апр 2018
    Привет, может кто сталкивался с такой проблемой?
    Создаю пост через апи ok, фото и текст публикуется хорошо, а вот видео нет. Права у приложения есть (VIDEO_CONTENT и GROUP_CONTENT)
    После публикация, я вижу видео на стене группы (значит оно загружается?), а вот другие пользователи нет, если зайти во вкладку Темы, то там будет текст поста и вместо видео надпись "Видео удалено или не является публично доступным".

    Пробовал загружать другое видео, то же самое. Если загрузить те же самые файлы, но только в ручную, то все хорошо публикуется. Помогите пожалуйста(

    [IMG]


    Так как фото и текст публикуется верно, то я не думаю что проблема в авторизации и в генерации подписи sig
    Вот так выглядит запрос получения url


    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)
    Получаю ид видео и ссылку для загрузки.
    Вот так вот загружаю видео:

    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)
    И вызываю метод обновления:

    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)
     
  2. противоположник
    после загрузки видео через
    ⁡video.getUploadUrl
    ⁡ и загрузки файла через полученную ссылку, тебе нужно дополнительно вызвать метод
    ⁡video.setPrivacy
    ⁡чтобы сделать видос публичным
     
    21 янв 2025 Изменено
    1. противоположник
      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)
    2. Mr_Marmeladka Автор темы
      противоположник, Скорее всего, вы подумали про соц. сеть VK, мне же нужно для OK (Одноклассники).
      У них нет метода video.setPrivacy, но в методе video.update, есть ""privacy": "PUBLIC"", который так же не работает((
    3. противоположник
    4. Посмотреть следующие комментарии (1)
  3. Mr_Marmeladka
    Mr_Marmeladka Автор темы 21 янв 2025 9 26 апр 2018
    Разобрался.
    Сначала вызываем метод video.getUploadUrl.
    Загружаем видео.
    Создаем пост mediatopic.post
    И уже после вызываем video.update
     
Top
Загрузка...