Как изменить сообщение в вк навсегда. Как редактировать сообщение в вк - порядок действий в десктопной и мобильной версии

27 ноября 2017 года разработчики популярной социальной сети ВКонтакте наконец-то выпустили долгожданное обновление, которое дает возможность редактировать сообщения, отправленные в личной переписке. Теперь пользователь может не беспокоиться, если в тексте была допущена ошибка или автоматическая замена символов опять сыграла свою злую шутку. Он в течение суток сможет исправить написанное в несколько кликов мыши.

Важно! Естественно, записи, оставленные другими людьми, изменять нельзя. Также все еще невозможно удалить отправленное сообщение у собеседника.

Как изменить сообщение в ВК

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

  • навести курсор мыши на запись, которую следует отредактировать;
  • нажать на появившуюся иконку карандаша (теперь она высвечивается рядом с маленькой звездочкой-пометкой для избранного);
  • изменить текст сообщения в нижнем диалоговом окне для набора символов (1);
  • подтвердить действие, кликнув по галочке (2);

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

Как изменить сообщение на телефоне

Разработчики обещают в скором времени выпустить обновление для официального приложения для Android, iOS и Windows Phone, которое позволит редактировать отправленные пользователем сообщения (некоторые источники ошибочно утверждают, что оно уже появилось). В данный момент это можно сделать только с помощью браузера. Чтобы изменить текст, следует выполнить аналогичные предыдущей инструкции действия:

  • пройти авторизацию на сайте, используя любой мобильный браузер;

  • перейти в полную версию сайта (в мобильной пока функция не доступна);

  • открыть нужную переписку;
  • выделить одним нажатием запись, которую необходимо изменить;
  • выбрать появившуюся внизу иконку карандаша;

  • отредактировать текст (1);
  • подтвердить действие (2).

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

Примечание: это гостевой пост. Статья написана одним из читателей блога.

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

Итак, во первых, нам нужно иметь полный доступ к двум аккаунтам ВК. Например, первый аккаунт Ваш, а второй фэйковый. Во вторых, Вы должны иметь хоть какие-то азы в программировании. Но не волнуйтесь. Большую часть работы сделаю я сам. Все способы являются легкими и быстрыми в исполнении из-за «дыр» в данной социальной сети. Однако, нет гарантий, что каждый метод у Вас будет работать. Но хоть один точно сработает.

Первый способ. Метод вложенной переписки.

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

https://oauth.vk.com/authorize?client_id=3245775&redirect_uri=http://api.vk.com/blank.html&scope=messages&display=page&response_type=token

В следствии, приложению будут доступны все данные пользователя. Не забудьте запомнить свой токен.

# -*- coding: utf-8 -*- import codecs import ConfigParser import datetime import json import sys import urllib2 from urllib import urlencode import vk_auth def _api(method, params, token): params.append(("access_token", token)) url = "https://api.vk.com/method/%s?%s" % (method, urlencode(params)) return json.loads(urllib2.urlopen(url).read())["response"] # read config values Config = ConfigParser.ConfigParser() Config.read("config.ini") login = Config.get("auth", "username") password = Config.get("auth", "password") messages_id = Config.get("messages", "chat_id") messages_type = Config.get("messages", "chat_type") app_id = Config.get("application", "app_id") # some chat preparation if messages_type == "interlocutor": is_chat = False elif messages_type == "chat": is_chat = True else: sys.exit("Messages type must be either interlocutor or chat.") # auth to get token try: token, user_id = vk_auth.auth(login, password, app_id, "messages") except RuntimeError: sys.exit("Incorrect login/password. Please check it.") sys.stdout.write("Authorized vk\n") # get some information about chat selector = "chat_id" if is_chat else "uid" messages = _api("messages.getHistory", [(selector, messages_id)], token) out = codecs.open("vk_exported_dialogue_%s%s.txt" % ("ui" if not is_chat else "c", messages_id), "w+", "utf-8") human_uids = ] # Export uids from dialogue. # Due to vk.api, start from 1. for i in range(1, 100): try: if messages[i]["uid"] != human_uids: human_uids.append(messages[i]["uid"]) except IndexError: pass # Export details from uids human_details = _api("users.get", [("uids", ",".join(str(v) for v in human_uids))], token) human_details_index = {} for human_detail in human_details: human_details_index] = human_detail def write_message(who, to_write): out.write(u"[{date}] {full_name}:\n {message} \n\n\n".format(**{ "date": datetime.datetime.fromtimestamp(int(to_write["date"])).strftime("%Y-%m-%d %H:%M:%S"), "full_name": "%s %s" % (human_details_index["first_name"], human_details_index["last_name"]), "message": to_write["body"].replace("", "\n") })) mess = 0 max_part = 200 # Due to vk.api cnt = messages sys.stdout.write("Count of messages: %s\n" % cnt) while mess != cnt: # Try to retrieve info anyway while True: try: message_part = _api("messages.getHistory", [(selector, messages_id), ("offset", mess), ("count", max_part), ("rev", 1)], token) except Exception as e: sys.stderr.write("Got error %s, continue...\n" % e) continue break try: for i in range(1, 201): write_message(message_part[i]["uid"], message_part[i]) except IndexError: break result = mess + max_part if result > cnt: result = (mess - cnt) + mess mess = result sys.stdout.write("Exported %s messages of %s\n" % (mess, cnt)) out.close() sys.stdout.write(‘done!\n")

Далее, для простоты, поставим одну и ту же дату на все сообщения. Я не претендую на оптимизированный код и очевидно, что его можно ужать, но я хочу продемонстрировать как можно подробную работу парсера с подобными XML:

While (true) { doc = XDocument . Load("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count=200&access_token=" + token); foreach (XElement el in doc . Root . Elements()) { if (el . Name . ToString() == "message") { foreach (XElement el_msg in el . Elements()) { if (el_msg . Name == "date") { foreach (XElement el_date in el_msg . Elements()) { if (el_date . Name == " 1403320931") { el_date . Name = "1403429673"; // то есть меняем дату на любую другую k++; } } } } } } m += 200; }

Я думаю, что основная идея здесь понятна. Осталось вернуть сообщения на сервер. Для этого нам понадобиться функция message.send(). Объект message должен обратиться к полю date, но сервер ВКонтакте устанавливает время у себя на сервере сам. Однако, если мы отправим сообщения как вложенную переписку — все получиться.

Наши письма должны имеют вложенную структуру, значит надо вызывать метод парсинга рекурсивно. Но в Java можно поступить проще. Всё, что находиться внутри цикла forEach, мы будем помещать в отдельный класс. В следствии, в методе accept будет происходить всё то, что было бы в теле цикла. В VkApiMessage есть поле fwd_messages. В нем будет хранится список из объектов пересланных сообщений VkApiMessage:

Private static class MessageConsumer implements Consumer { @Override public void accept(VKApiMessage message) {} } messages.stream().forEach(new MessageConsumer()); if (!message.fwd_messages.isEmpty()) { System.out.println("

"); message.fwd_messages.forEach(new MessageConsumer()); System.out.println("
"); }

В общем, результат выглядит ничем не хуже оригинала в ВК:

Второй способ. Метод изменения GMT на сервере.

Алгоритм : меняем время на сервере, отправляем сообщения.

Второй метод несколько легче первого, так как нам не нужно старые(но измененные) сообщения возвращать назад на сервер (кстати, иногда, это не получается сделать из-за “глупого” сервера). Второй же способ работает более надежно.

Здесь нам не нужны готовые сообщения. Мы их создадим сами и перешлем на сервер, предварительно изменив GMT (часовой пояс). Для таких целей нам понадобиться абузоустойчивый VPS. Желательно на базе CentOS.

Сначала, меняем время и дату на сервере. Опять же, это можно сделать любым другим способом. Можно так:

# mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Europe/USA /etc/localtime # date MMDDhhmm # date 03182015 # man date

Настраиваем наш сервер под данные сервера ВК:
IP:87.240.182.185
Browser: Mozilla/5.0 (compatible; vkShare; +http://vk.com/dev/Share)
Port: 36035
Host: srv185-182-240-87.vk.com

Не забываем про регистрация на API (см. Первый способ). Отправляем сообщения через уже знакомую функцию message.send().

Объект message, описывающий личное сообщение, возвращает поле “date” — дата отправки сообщения в формате unixtime. Обратите внимание на фразу “дата отправки”. Ничего не говорится про дату получения сообщения сервером ВКонтакте.

Вот и все. Результат аналогичный первому. Все очень просто.

Третий способ. Сниффер трафика.

Алгоритм : качаем/покупаем сниффер, радуемся.
Самый простой метод. Но, к сожалению, методика зависит от качества программы, которую мы качаем из интернета.
Итак, можно просто попробовать скачать/купить что-то типо Charles, словить запрос, редактировать его (дату) и дублировать. Программа перехватывает пакет, меняет время отправки внутри пакета и отправляет контакту. Сервис ВК получает уже заданное unixtime сообщение. Таких снифферов в интернете куча. Но качественных и бесплатных найти сложно. Однако, они стоят не так дорого.

Как Вы уже поняли, отправить личное сообщение задним числом не составляет труда. Я не написал выше полностью все коды, а только самые необходимые и сложные. Дописать остальные, думаю, не составит труда. Большое спасибо.

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

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

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

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

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

Процесс не сильно отличается в зависимости от версии, но мы затронем обе разновидности сайта.

Заканчивая с предисловием, можно переходить непосредственно к инструкции.

Полная версия сайта

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

  1. Через заглавное меню откройте страницу «Сообщения» и перейдите к диалогу, в котором необходимо отредактировать письмо.
  2. Изменению может быть подвержено только то сообщение, которое уже было отправлено.
  3. Еще одной важной особенностью редактирования, о которой необходимо знать заранее, является возможность внесения корректировок только в собственные письма.
  4. Отредактировать сообщения собеседника невозможно ни одним легальным способом!

  5. Чтобы внести изменения, наведите курсор мыши на нужное письмо в рамках диалога.
  6. Менять содержимое сообщений можно как в приватных переписках, так и публичных беседах.

  7. Кликните по иконке с изображением карандаша и со всплывающей текстовой подсказкой «Редактировать» в правой части страницы.
  8. После этого блок отправки нового письма изменится на «Редактирование сообщения» .
  9. Внесите требуемые поправки, используя стандартный набор средств данной социальной сети.
  10. Степень вносимых изменений не ограничена, однако помните о стандартных рамках системы обмена письмами.

  11. Вполне можно добавить изначально отсутствующие медиафайлы.
  12. Если вы случайно активировали блок изменения письма или желание менять содержимое было утрачено, процесс можно отменить в любой момент, воспользовавшись специальной кнопкой.
  13. Закончив с правкой письма, вы можете применить изменения путем использования кнопки «Отправить» с правой стороны от текстового блока.
  14. После внесения корректировок получателя не будут беспокоить какие-либо дополнительные оповещения.

  15. Главной отрицательной чертой процесса редактирования сообщений является подпись «(ред.)» у каждого измененного письма.
  16. При этом, если навести курсор мыши на указанную подпись, будет высвечена дата корректировки.
  17. Меняется содержимое не только у вас, но и у получателя со всеми вытекающими особенностями.

  18. Некогда откорректированное письмо вполне можно изменить повторно в будущем.

Если вы проявили достаточно внимательности, то у вас не будет проблем с изменением собственных писем.

Мобильная версия сайта

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

В мобильной версии, равно как и наоборот, может быть отредактировано письмо, ранее отправленное с иной версии VK.

  1. Откройте облегченную копию сайта ВКонтакте в наиболее удобном для вас веб-браузере.
  2. С помощью стандартного главного меню откройте раздел «Сообщения» , выбрав нужную беседу из активных.
  3. Отыщите блок с редактируемым сообщением среди общего списка писем.
  4. Кликните левой клавишей мыши по содержимому, чтобы выделить сообщение.
  5. Теперь переключите свое внимание на нижнюю панель управления выделением.
  6. Воспользуйтесь кнопкой «Редактировать» , имеющую значок с изображением карандаша.
  7. Всплывающая подсказка, в отличие от полной версии сайта, отсутствует.

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

И в течение какого времени разрешено выполнить данное действие.

Как редактировать сообщения в ВК на компьютере

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

Снизу появится окно редактирования, в котором можно:

  • исправить текст (добавить, удалить, исправить);
  • добавить или удалить вложение;
  • поставить или убрать смайлики;

Когда сообщение исправлено, подтверждаем выполненное действие, нажимая на галочку ()

После внесенных исправлений появляется пометка о редактировании (ред.) , а при наведении на пометку всплывает подсказка с указанием времени редактирования.

Теперь текст и содержание поменяется у обоих собеседников.

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

Долго ли доступна операция редактирования?

Отредактировать написанное сообщение в ВК разрешается только в течение 24 часов после отправки. По истечении суток операция редактирования становится недоступной. Но обычно действие актуально в первые минуты.

Как редактировать сообщение в ВК на телефоне

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

1. Нажать на сообщение и во всплывающем окне выбрать “Редактировать”.

Не забываем, что если сообщение ВКонтакте написано более суток назад, отредактировать его не получится.

2. Откроется окно редактирования. Здесь мы можем исправить ошибки, дополнить сообщение, прикрепить вложение или смайлик. Когда все готово – нажимаем на синюю галочку.

3. Теперь можно увидеть результат. Рядом с текстом появится отметка “Ред.” Кстати, с телефона нельзя увидеть время правки – у сообщения сохраняется время его публикации. Если хотите посмотреть, во сколько именно отредактировано сообщение – нужно перейти в полную версию ВК.