Как стать автором
Обновить

Комментарии 24

В ВК у пользователей есть одна любопытная фича — отправка email-ов непосредственно из своих сообщений
(для этого просто надо указать, email в качестве получателя, вместо какого пользователя)

Как только техподдержка отпишется, можно ли то же самое делать через API, дам знать
Если бы автор статьи использовал многочисленные реализации клиентов VK API на PHP, то статья бы уложилась в пару абзацев.
Несколько более компактный вариант статьи:

  1. Создать в VK standalone-приложение vk.com/editapp?act=create
  2. Перейти по ссылке вида https://oauth.vk.com/authorize?client_id=12345678&scope=abcdef&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.37&response_type=token
    где предварительно:
    — заменить «12345678» на id созданного приложения,
    — заменить «abcdef» на строку с необходимыми правами доступа (https://vk.com/dev/permissions).
    Например, «wall,photos,messages,offline».
  3. Получить «TOKEN» из адресной строки в параметре «access_token»: oauth.vk.com/blank.html#access_token=TOKENb&expires_in=0&user_id=123456789
  4. Вызвать необходимый метод API, путем отправки соответствующего запроса на любом ЯП с указанием метода и полученного токена. Например:
    api.vk.com/method/users.get?user_id=66748&v=5.37&access_token=TOKEN
О чем-то таком я и говорил, ага)
А таким же методом можно читать сообщения пользователя в диалогах? Ну с его разрешения конечно. к примеру хочу сделать бекап истории сообщений.
Я разговаривал с поддержкой, для веб-сервисов они такую фичу не дают. Я верно понял, вы зарегали приложение как Standalone чтобы получить токен с сообщениями. а потом просто берете его и используете через PHP?
Ну интересный вариант.

Вообще я хотел эту фичу использовать, чтобы сообщения из вк пушить. К примеру у некоторых много аккаунтов вк, и можно было бы все их сканировать на новые сообщения и пушить через единое приложение. плюс уведомления на компе. Обязательно попробую.
Вообще как ВК ко всему этому относится? Ну к примеру если я буду просить пользователей копировать этот токен в сервис, чтобы потом сканировать сообщения? Конечно же везде будет указано о доступе и т.д.
https://vk.com/dev/messages.get
https://vk.com/dev/messages.getDialogs
https://vk.com/dev/messages.getHistory

В зависимости от поставленной задачи, что то из этого
Вообще как ВК ко всему этому относится?

Ну они API для разработчиков сторонних то и сделали.

Ну к примеру если я буду просить пользователей копировать этот токен в сервис

Именно для этого (см скрин) и выводится предупреждение о том.чтоб они не копировали это и кому то не передавали.
Если же они все равно это сделали, это уже их проблема — с таким же успехом они могли бы и пароль свой передать
Очень давно и очень подробно обсуждали с парнями из команды разработки API ВК в комментариях к посту про разные уровни access_token-ов и тот факт, что веб-приложениям запрещено получать токен с такими правами доступа, и почему и что за это бывает. Вот: habrahabr.ru/post/179953. Если выпредложите пользователю скопировать такой access_token из адерсной строки браузера, будьте готовы, что вас забанят к чертвой матери и без объявления войны.
Что это? И, главное, зачем это?
".html≻ope=<?=$scope;?>"

тут нет опечатки?
Вы за кусок из второго пункта?

там вроде
&scope=<?=$scope;?>


Вроде нет: В параметр вставляем в теге php переменную с таким же именем
И верно. А на телефоне выглядит так
image
НЛО прилетело и опубликовало эту надпись здесь
Отвечаю: когда гуглил, как подобное сделать, напоролся на кучу статей, подобно этой http://habrahabr.ru/sandbox/57993/ (которую гугл выдал первой при запросе «php vk api»)
которые были, либо написаны с ошибкой, либо потеряли актуальность.
В частности, из за статьи выше убил на задачу день, ибо делал все через iframe приложение, как там указано, через которое, работать не будет заведомо.

PS: напишите эти 15 строк (а вообще по сути нужна одна — http запрос)
Тут фишка статьи вообще не в запросе API. Я к примеру давно работал с VK API, но я не знал, что можно прикинуться Standalone и получить доступ к messages. Я конечно предполагал, что можно вытащить из приложухи и т.д. но не думал что можно так просто дать ссылку пользователю и он может в ответ кинуть токен.
И получить за это вечный бан без предупреждения =)
Поговорю еще с администрацией по этому поводу. Бан вроде не сразу и только по жалобе. Но понятное дело что любой недовольный может пожаловаться.
К слову не совсем понятно. а если у меня на самом деле приложение десктопное. получаю я к примеру этот токен окей. А что будет если кто то выцепит чужой ключ приложения и будет так получать токены. Из статьи это видно.

К примеру получаем что
1. Берем любое приложение в VK API
2. Вытаскиваем из него айди приложения
3. Получаем токены через это айди для других людей
4. Начинаем рассылать спам
5. Жалуемся.

Как итог, так можно прикрыть любое десктопное/мобильное приложение с вк где используются сообщения? Более того, всегда же можно запросить их дополнительно, даже если ты их не используешь — их может использовать злоумышленник.

Но тут назревает вопрос, если оно так легко получается с любым приложением. То почему нельзя легально это делать, и почему не считается, что любой владелец мобильного приложения или десктопного клиента может в любой момент взять все токены и начать спамить? Тоже самое же. Возмет базу прокси, пройдется по сохраненным токенам и будет спамить никаких проблем в этом нет.
Так почему нельзя в белую получать к этому доступ, если ничто не мешает получить к этому доступ после раскрутки мобильного приложения? Пусть ВК вообще будет для таких сайтов показывать красные плашки на весь экран и кнопку «я согласен со всеми условиями на свой страх и риск»
PS. Такую плашку надо во все standlone приложения тоже вешать — им тоже идет полный доступ по сути.
в свое время я интересовался подобным вопросом — мне нужно автоматически репостить некое сообщение на стену и в сообщество. да, можно выдирать из standalone-приложения или же через blank.html, но проблема в том, что этот токен живет одни сутки и, следовательно, каждые сутку нужно снова руками выдирать этот токен чтобы прописать его в приложение, которое делает репост

как я понимаю, у ВК следующая политика: есть некоторые действия, для которых необходимо вмешательство пользователя (пользователь должен сам кликнуть, тапнуть, клацнуть на кнопку и тогда отправится сообщение или сделается репост) и автоматизировать их нельзя

и да, за получение токена из blank.html выдается бан
НЛО прилетело и опубликовало эту надпись здесь
Имя пишем какое угодно — фигурировать оно нигде не будет

Если использовать wall.post — то будет и лучше его все же оформить
Просто личные сообщения по сути бесполезны.
Да и сама статья при подробной документации еще и на родном языке не очень полезна
Уникальная статья, в плане положения вещей: столько минусов автору (не буду судить заслуженно или нет) и столько добавлений в закладки… Мистика хабрасообщества.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории