Как сохранить запись себе на стену в вк: как сохранить запись вконтакте??? — Вопросы и ответы про социальные сети

vk.com — Сохранение аудиозаписей, документов, содержимого стены / Хабр

Я уже давно заметил, что данные в социальных сетях хранятся плохо. Например, сделанный вами репост окажется пустым, если автор оригинальной записи ее удалит. Недавние проблемы с аудиозаписями в vk стали последней каплей, и я решил сохранить локально все данные, которые могут представлять интерес

на случай ядерной войны

. Поискав готовые решения, я не нашел ничего, что бы устроило меня, поэтому за несколько дней был написан скрипт на Python.

Цели

Сохранить все, что можно: аудиозаписи, документы, стену. Со стены нужно утащить все приложения к постам, и комментарии со всеми приложениями тоже лишними не будут. Нужно это как минимум затем, чтобы сохранились все посты с музыкой и комментарии, где друзья отправляли хорошие треки

или котиков

. Сразу скажу, что в моих целях не было читабельного бэкапа дополнительной информации (лайки, время создания записи и прочее).

За дело!

Процесс создания подобного приложения уже не разописан на хабре, поэтому повторять все подробности не стану, опишу шаги работы вкратце, а еще скажу пару слов о пролемах. Чтобы статья не была перегружена исходниками, в конце будет ссылка на github.

Соображения по ходу разработки

  • Прежде всего, потребуется завести себе id приложения. Важно, чтобы тип был standalone, иначе некоторые методы vk api будут недоступны.
  • Еще нужен id пользователя, данные которого будем сохранять. Свой найти можно на странице настроек
  • Чтобы приложение работало, нужно разрешение пользователя, а точнее, access token. Прямого неинтерактивного способа получить токен нет, можно парсить страницу авторизации, но проще — попросить пользователя нажать на кнопку в браузере и скопировать url. За это отвечает функция auth():
        url = "https://oauth.vk.com/oauth/authorize?" + \
              "redirect_uri=https://oauth. vk.com/blank.html&response_type=token&" + \
              "client_id=%s&scope=%s&display=wap" % (args.app_id, ",".join(args.access_rights))
        print("Please open this url:\n\n\t{}\n".format(url))
        raw_url = raw_input("Grant access to your acc and copy resulting URL here: ")
        res = re.search('access_token=([0-9A-Fa-f]+)', raw_url, re.I)
    

  • У запросов vk api есть ограничение: не более пяти в секунду. Если обращаться к серверу слишком часто, он ответит ошибкой. Это достаточно удобно: по коду ошибки можно понять, что скрипт работает слишком быстро, подождать какое-то время и повторить запрос.
            if result[u'error'][u'error_code'] == 6:  # too many requests
                    logging.debug("Too many requests per second, sleeping..")
                    sleep(1)
                    continue
    

  • Периодически сервер vk требует решить каптчу, подозревая, что клиент — бот. В общем-то, правильно подозревает. Чтобы процесс сохранения не прерывался, приходится просить пользователя перейти по ссылке на картинку, разгадать каптчу и вбить ответ. +=\-()$!#%&,.\w\s]’, ‘_’, name, flags=re.UNICODE).strip())
  • Еще одна проблема с именами файлов: могут совпадать, например в случае с документами. Для этого к имени файла добавим (n), где n — первое число, дающее уникальное имя файла.
    #file might exist, so add (1) or (2) etc counter = 1 if exists(fname) and isfile(fname): name, ext = splitext(fname) fname = name + " ({})".format(counter) + ext while exists(fname) and isfile(fname): counter += 1 name, ext = splitext(fname) fname = name[:-4] + " ({})".format(counter) + ext

Продолжим

Код обращения к api взят из статьи хабраюзера dzhioev, и добавлена обработка ситуаций, описанных выше. Чтобы было, что сохранять (в случае с обработкой стены), надо сначала узнать количество постов:

        #determine posts count
        (response, json_stuff) = call_api("wall.
get", [("owner_id", args.id), ("count", 1), ("offset", 0)], args) count = response[0]

Дальше запрашиваем каждый пост по отдельности и разбираем его

        for x in xrange(args.wall_start, args.wall_end):
            (post, json_stuff) = call_api("wall.get", [("owner_id", args.id), ("count", 1), ("offset", x)], args)
            process_post(("wall post", x), post, post_parser, json_stuff)

Результат запроса — это набор данных в JSON, которые разбираются в стандартные для python’а структуры с помощью json.loads() из стандартной библиотеки. В итоге, имеем хэш-массив, в котором некоторые поля (ключ-значение) несут полезную нагрузку, а остальные нас не интересуют. Чтобы руками не писать, какое поле каким методом обрабатывать, воспользуемся мощью рефлексии: будем искать метод, имя которого совпадает с интересующим ключом.

        for k in raw_data.keys():
            try:
                f = getattr(self, k)
                keys.
append(k) funcs.append(f) except AttributeError: logging.warning("Not implemented: {}".format(k)) logging.info("Saving: {} for {}".format(', '.join(keys), raw_data['id'])) for (f, k) in zip(funcs, keys): f(k, raw_data)
Парсим

Теперь нужно разбираться с полями ответа. Интересные — это attachments, text, comments. Attachments — это список приложений к посту (аудио, картинки, документы, заметки), надо уметь скачивать каждый тип. Определяемся, каким методом обрабатывать каждый attachment, аналогичным способом: по типу аттача ищем метод с подходящим именем. Вот пример «качалки» для аудио:

    def dl_audio(self, data):
        aid = data["aid"]
        owner = data["owner_id"]
        request = "{}_{}".format(owner, aid)
        (audio_data, json_stuff) = call_api("audio.getById", [("audios", request), ], self.args)
        try:
            data = audio_data[0]
            name = u"{artist} - {title}.
mp3".format(**data) self.save_url(data["url"], name) except IndexError: # deleted :( logging.warning("Deleted track: {}".format(str(data))) return # store lyrics if any try: lid = data["lyrics_id"] except KeyError: return (lyrics_data, json_stuff) = call_api("audio.getLyrics", [("lyrics_id", lid), ], self.args) text = lyrics_data["text"].encode('utf-8') ...

К сожалению, изъятые по просьбе правообладателей аудиозаписи больше не доступны, для них возвращается пустой ответ.

А остальное?

Методы обработки картинок, текста, заметок, закачки документов и остальное — в github. Скажу только, что все аналогично приведенным примерам. Еще скрипт имеет аргументы командной строки, их описывать в статье смысла нет. Примеры и прочие подробности — в readme.

TODO

Я не стал делать сохранение фотоальбомов, потому что у меня там ничего важного не хранится, да и код kilonet из его статьи неплохо работает. Еще не сохраняются видеозаписи и заметки, мне это показалось не сильно нужным.

На последок

Код далек от идеала и не отличается отсутствием костылей, но выполняет поставленную задачу. Надеюсь, кому-то пригодится моя поделка, для сохранения своих записей/документов/музыки, или для обучения.

UPD 18.12.2016

Юзер hiwent говорит, что с 16.12.2016 года vk закрыли возможность использовать API для работы с аудиозаписями. В связи с этим, функционал скрипта, предусмотренный для сохранения аудиозаписей, не работает. В связи с этим можно попробовать «прикинуться» родным приложением vk, апример андроид-версией, или kate mobile. Для них возможность работать с аудиозаписями никуда не пропадет, хотя может быть методы отличаются.

Как сделать репост ВКонтакте и что это такое?

Приветствуем, друзья!

Продолжаем разбираться в интерфейсе ВКонтакте. Сегодня вы узнаете, как сделать репост в ВК, его разновидности, чем он полезен и какие существуют тонкости.

Почему стоит разобраться – данный инструмент эффективен как для личного использования в соцсети, так и для ведения бизнес-страниц. Существуют правила, по которым совершается узаконенный сайтом копипаст.

Что такое репост?

Кратко обозначим для ясного понимания, что такое репост. Это функция, позволяющая сохранять выбранную запись к себе на стену, отправлять в сообщество или личным сообщением. В записи, которой вы поделились таким образом, будет указан первоисточник.

Далее разберемся, что означает само слово, пришедшее к нам из другого языка. К слову “пост”, как называют публикации ВКонтакте, добавляется английская приставка “re”, которая значит “воспроизведение”, “повтор”. То есть происходит повторение информации, грубо говоря, копипаст.

Это позволяет моментально делиться информацией и сохранять ее, тогда как обычное копирование – гораздо дольше. Например, когда необходимо сохранить красивую подборку фотографий или музыки, полезных учебных материалов или видео-роликов. Чтобы воспроизвести материал в таком же виде, понадобится отдельно загрузить картинки и добавить композиции, документы, видео.

Мы делаем проще – с помощью одного клика дублируем нужную публикацию и сохраняем.

Немаловажно, с точки зрения авторства и банальной вежливости, этичнее сделать репост, чем “содрать” информацию с чужой записи.

Как сделать репост записи?

Нажмите на кнопку в виде стрелки, которая показана на скриншоте ниже. При наведении на нее курсором появляется надпись “Поделиться».

Далее вы попадаете в меню с тремя вариантами.

На стену страницы

Чтобы репостнуть на страницу, выделяйте первый пункт – “Друзья и подписчики”. Информация сохранится на стене личной страницы и отобразится в ленте у друзей и подписчиков.

В группу/сообщество

Для копипаста в группу, выбирайте второй пункт – “Подписчики сообщества”. Развернется список, куда можно дублировать выбранный пост. После этого его можно закрепить в шапке, как обычную публикацию.

Репост от имени группы

Для такого вида репоста нужно обязательно обладать правами администратора. Важное замечание: репостнуть получится только от имени группы. Нельзя сделать так, чтобы ваше имя упоминалось в публикации.

Если данный нюанс важен, то сделайте соответствующий комментарий к записи.

Личным сообщением

Отправляя публикацию личным сообщением, вы отправите ее напрямую в диалог с выбранным человеком. При выделении нескольких людей, со всеми участниками будет создана отдельная беседа.

С комментарием

Функционал ВКонтакте позволяет сделать репост с текстом – добавить комментарий или приписку от своего лица. Обратите внимание на специальное поле после меню выбора вариантов.

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

Отложенный перепост

Совершается по тому же принципу, как и отложенный пост. Проделываем обычные шаги: нажимаем на стрелочку “Поделиться” и выбираем, куда отправить.

Далее во вкладке “Еще” на нижней панели инструментов выбираем значок часов с подписью “Таймер”.

В открывшемся меню выбираем дату и время публикации.

С помощью телефона

Этапы того, как сделать репост с телефона такие же, как на сайте. Если открываете браузер в мобильной версии – алгоритм тот же.

Нажимаете на значок стрелки под постом, выбираете в меню, куда отправить информацию. Выпадает поле для комментария и прикрепления файлов. Когда все готово, нажимаете “Отправить” – публикация готова.

Частые вопросы

Почему из группы ВКонтакте нельзя сделать репост?

Возможны две причины.

  1. Выбранная публикация сделана не от имени группы, а отдельным участником на его стене. Перепостить можно те записи, которые были опубликованы напрямую от имени сообщества.
  2. Сделать репост на стену не получится из закрытых и частных групп, это нарушение правил конфиденциальности. Однако поделиться записью в личном сообщении – можно.

Как посмотреть, кто сделал репост?

Наведите курсор на стрелочку и подождите пару секунд. Появится окно с короткими данными о количестве репостов и списком людей. Чтобы развернуть всю информацию, нужно нажать на надпись “Поделилось … человек”. При этом, если записью поделились ваши друзья, именно их имена вы увидите первыми в коротком списке-превью.

Сколько репостов можно делать в день?

Согласно правилам сайта, в день можно поделиться чужими записями до 150 раз (после исчерпания лимита функция становится доступной ровно через 24 часа).

Но если перепост будет идти с пулеметной скоростью, ВКонтакте забанит вас намного раньше этой цифры.

Делайте интервалы в 1 – 2 минуты, иначе система зафиксирует спам.​

Заключение

Функция репостинга – простая в обращении и крайне полезная. Например, ее активно используют для конкурсов. Сообщества и паблики призывают поставить лайк и сохранить запись на стену, чтобы участвовать в розыгрыше. Из репостнувших выбирают победителя и дарят подарки.

Заработок на репостах – тоже явление нередкое, об этом мы рассказывали в отдельной статье. Заглядывайте, кого интересует, как делать перепосты за деньги.

Отметим, что данный способ отвечает политике об авторском праве – безусловный плюс. Минус – множество страниц и пабликов во ВК напоминает банальное копирование друг друга. Злоупотребление копипастом обостряет необходимость в авторском контенте.

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

Удачи и процветания!

дизайнов логотипов ВКонтакте, тем, шаблонов и графических элементов, загружаемых на Dribbble

  1. Посмотреть ВК СПОРТ

    ВК СПОРТ

  2. Посмотреть Вк Спорт

    Вк Спорт

  3. Посмотреть MailDesign → Команда дизайнеров ВКонтакте

    MailDesign → VK Design Team

  4. Посмотреть цифровое сопротивление

    Цифровое сопротивление

  5. Посмотреть логотип монограммы ВКонтакте

    Логотип с монограммой ВКонтакте

  6. Посмотреть логотип Vk doodles

    Логотип Vk doodles

  7. Просмотр записи подкастов

    Запись подкастов

  8. Просмотр 3D-персонажей — 03/01

    3D-персонажи — 03. 01

  9. Посмотреть сервисы ВК

    ВКонтакте Сервисы

  10. Просмотр 3D-персонажей — 03/03

    3D-персонажи — 03/03

  11. Посмотреть мультипликационную анимацию пользовательского интерфейса

    Мультипликационный пользовательский интерфейс

  12. Посмотреть логотип vitkam (v+k)

    логотип vitkam (v+k)

  13. Просмотр ВКонтакте — Экран поста на стене

    ВКонтакте — Экран поста на стене

  14. Посмотреть иллюстрации для лендинга ВКонтакте

    Иллюстрации для лендинга ВКонтакте

  15. Посмотреть анимированный рисунок Vk doodle

    Анимированный рисунок Vk doodle

  16. Просмотр 3D-персонажей — 03/02

    3D-персонажи — 03. 02.

  17. Посмотреть логотипы ВК

    Логотипы ВКонтакте

  18. Посмотреть набор стикеров для ВКонтакте

    Набор наклеек для ВКонтакте

  19. Посмотреть сообщество администраторов

    Сообщество администраторов

  20. Посмотреть патч ВКонтакте

    Нашивка ВКонтакте

  21. Посмотреть логотип мобильного бренда ВКонтакте

    Логотип мобильного бренда ВКонтакте

  22. Посмотреть иллюстрации для ВК

    Иллюстрации для ВК

  23. Посмотреть ВК

  24. Посмотреть посадку VK Fellowship

    Посадка ВКонтакте

Зарегистрируйтесь, чтобы продолжить или войдите

Загрузка еще…

Как сохранить стену Facebook | Small Business

Лори Свенсон

Сохранение на стене Facebook поможет вам сохранить записи ваших социальных или деловых взаимодействий. Вы можете сохранить коллекцию поздравлений с днем ​​рождения, постов, посвященных торжественному открытию, или визуальное напоминание о дне, когда вы подобрали тысячного поклонника. Вам также может понадобиться сохранить свою стену Facebook по более серьезным причинам. Например, вы можете сохранить пренебрежительные замечания о вашем бизнесе или продукте со своей или чужой стены в качестве доказательства для возможного судебного иска.

Сохранить вручную

  1. Перейдите на Facebook и перейдите на свою стену или стену, которую хотите сохранить. Перейдите в нижнюю часть страницы и нажмите «Старые сообщения» столько раз, сколько необходимо, чтобы отобразить весь контент, который вы хотите сохранить.

  2. Нажмите «Файл» в верхнем меню и выберите «Сохранить страницу как» в контекстном меню. Назовите страницу как хотите. В раскрывающемся меню «Тип файла» под именем файла выберите «Веб-страница, полная», если этот параметр еще не выбран.

  3. Нажмите кнопку «Сохранить», чтобы сохранить страницу в нужную папку на жестком диске. Страница будет сохранена как отдельный файл с подпапкой, содержащей нетекстовые элементы, такие как фотографии и графика. Эта вложенная папка должна оставаться нетронутой, чтобы вы могли просматривать страницу в том виде, в котором она появилась на Facebook.

Тщательное сохранение Facebook

  1. Создайте резервную копию данных Facebook, чтобы сохранить всю стену. Войти в Facebook. Нажмите стрелку в правом верхнем углу страницы рядом с кнопкой «Домой» и прокрутите вниз до «Настройки учетной записи». Нажмите «Загрузить копию ваших данных Facebook». Затем нажмите «Начать мой архив».

  2. Когда ваши данные будут готовы к архивированию, вы получите электронное письмо. Это может занять 30 минут или целый день, в зависимости от того, сколько данных содержит ваша учетная запись.

  3. Откройте электронное письмо от Facebook, когда оно придет, и щелкните ссылку для скачивания, встроенную в сообщение. Выберите «Сохранить файл» в открывшемся меню и выберите папку назначения для вашей истории Facebook.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *