какой метод устанавливает новый статус текущему пользователю или сообществу в vk
Какой метод устанавливает новый статус текущему пользователю или сообществу в vk
Чтобы обратиться к методу API ВКонтакте, Вам необходимо выполнить POST или GET запрос такого вида:
Например, вызовем метод users.get для пользователя с идентификатором 210700286:
К методам API ВКонтакте (за исключением методов из секций secure и ads) с ключом доступа пользователя можно обращаться не чаще 3 раз в секунду. Для ключа доступа сообщества ограничение составляет 20 запросов в секунду. Если логика Вашего приложения подразумевает вызов нескольких методов подряд, имеет смысл обратить внимание на метод execute. Он позволяет совершить до 25 обращений к разным методам в рамках одного запроса.
Для сервисного ключа доступа лимиты такие:
Кол-во пользователей приложения | Частотный лимит (кол-во запросов в секунду) |
---|---|
до 10 000 | 5 |
до 100 000 | 20 |
до 500 000 | 40 |
до 1млн | 50 |
больше 1млн | 60 |
Для методов секции ads действуют собственные ограничения, ознакомиться с ними Вы можете на этой странице.
Максимальное число обращений к методам секции secure зависит от числа пользователей, установивших приложение. Если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду, до 100 000 — 8 запросов, до 1 000 000 — 20 запросов, больше 1 млн. — 35 запросов в секунду.
Если Вы превысите частотное ограничение, сервер вернет ошибку с кодом 6: «Too many requests per second.».
Помимо ограничений на частоту обращений, существуют и количественные ограничения на вызов однотипных методов. По понятным причинам, мы не предоставляем информацию о точных лимитах.
После превышения количественного лимита доступ к конкретному методу может требовать ввода капчи (см. captcha_error), а также может быть временно ограничен (в таком случае сервер не возвращает ответ на вызов конкретного метода, но без проблем обрабатывает любые другие запросы).
Запросы к API ВКонтакте могут быть выполнены из браузера со страниц сторонних сайтов или IFrame приложений.
Чтобы осуществлять кроссдоменные запросы к API, Вы можете использовать протокол JSONP. Для этого необходимо подключать к документу скрипт с адресом запроса в src. Запрос должен содержать дополнительный параметр callback c именем функции, которая будет вызвана при получении результата.
Какой метод устанавливает новый статус текущему пользователю или сообществу в vk
В этом руководстве вы найдете базовую информацию о принципах работы API ВКонтакте и о подготовке к его использованию. Если вы уже работали с нашим API или с аналогичными сервисами других платформ, и знаете, какое приложение хотите создать, мы рекомендуем вам перейти в соответствующий раздел документации.
API (application programming interface) — это посредник между разработчиком приложений и какой-либо средой, с которой это приложение должно взаимодействовать. API упрощает создание кода, поскольку предоставляет набор готовых классов, функций или структур для работы с имеющимися данными.
API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Вам не нужно знать в подробностях, как устроена база, из каких таблиц и полей каких типов она состоит — достаточно того, что API-запрос об этом «знает». Синтаксис запросов и тип возвращаемых ими данных строго определены на стороне самого сервиса.
Например, для получения данных о пользователе с идентификатором 210700286 необходимо составить запрос такого вида:
Ответ на наш запрос выглядит так:
Структура ответа каждого метода также строго задана, и при работе с API вы заранее знаете, что в поле id придет число, а в поле first_name — строка. Такие правила оговариваются на страницах с описанием метода и соответствующих объектов, которые он возвращает в ответе. Например, users.get — здесь описаны входные параметры метода и структура его ответа, а здесь — user подробно расписано каждое поле объекта из ответа.
Если вы уже имеете опыт работы с JSON, вам также может быть полезна информация о JSON схеме API ВКонтакте: JSON схема API ВКонтакте.
Объект из ответа может быть не уникален для конкретного метода. Например, объект пользователя с набором полей, содержащих данные о его образовании, возрасте, интересах, может возвращаться в ответе от методов users.get, users.search, groups.getMembers и еще нескольких.
В примере мы использовали метод users.get, который позволяет получить информацию о пользователях, но для разработки приложений этого будет мало. Чтобы использовать все возможности API ВКонтакте, нужно зарегистрировать своё приложение.
Совет. Если вы пока не знаете, какую платформу выбрать, используйте Standalone-приложение. Мы обычно рекомендуем его для тренировки.
ВКонтакте — социальная сеть, где есть дружеские связи, настройки приватности и даже черные списки. Многое зависит от того, кто просматривает страницу: кто-то увидит на ней всю ту же информацию, что и владелец, а кто-то — лишь общедоступные данные.
В API этот принцип сохраняется. Если вы скрыли список своих групп от не-друзей, то и через API ваши не-друзья не должны его увидеть. Поэтому почти все методы требуют авторизации пользователя перед началом работы. Проще говоря, сервер должен знать, кто к нему обращается за информацией, чтобы предоставить ее в том же виде, что и в основной версии сайта.
В общем случае для идентификации в API используется специальный ключ доступа, который называется access_token. Токен — это строка из цифр и латинских букв, которую вы передаете на сервер вместе с запросом. Из этой строки сервер получает всю нужную ему информацию. Есть разные способы получения токена, более того, он может быть выдан не только пользователю, но и сообществу, и сразу всему приложению — подробнее об этом вы можете прочитать здесь.
Мы воспользуемся самым простым способом (Implicit flow) и получим токен для работы с API из созданного вами на прошлом этапе приложения.
Откройте новую вкладку в браузере и введите в адресную строку такой запрос:
Число 5490057 в запросе нужно заменить на API_ID вашего приложения.
Нажмите Enter. Откроется окно с запросом прав. В нем отображаются название приложения, иконки прав доступа, и ваши имя с фамилией.
Нажмите «Разрешить». Вы попадете на новую страницу с предупреждением о том, что токен нельзя копировать и передавать третьим лицам. В адресной строке будет URL https://oauth.vk.com/blank.html, а после # вы увидите дополнительные параметры — access_token, expires_in и user_id. Токен может выглядеть, например, так:
Токен — это ваш ключ доступа. При выполнении определенных условий человек, получивший ваш токен, может нанести существенный ущерб вашим данным и данным других людей. Поэтому очень важно не передавать свой токен третьим лицам.
Поле expires_in содержит время жизни токена в секундах. 86400 секунд — это ровно сутки. Через сутки полученный токен перестанет действовать, для продолжения работы нужно будет получить новый. Есть возможность получить токен без срока действия — для этого в scope добавьте значение offline. Вы можете принудительно отозвать токен (например, в том случае, если он стал известен постороннему), сбросив сеансы в настройках безопасности вашего аккаунта или сменив пароль. Также, если речь идет о токене не из вашего собственного приложения, можно просто удалить приложение из настроек: https://vk.com/settings?act=apps
Поле user_id содержит id пользователя, для которого получен токен.
Теперь вы можете сделать вызов метода от своего имени. Например, получить список друзей, которые сейчас находятся на сайте.
Для этого введите в адресную строку:
и вставьте после знака «=» Ваш access_token, затем нажмите Enter. В ответе сервер вернет список идентификаторов ваших друзей, которые сейчас онлайн. Почитать подробнее о работе этого метода можно здесь. Заметьте, вы не указали в запросе, для какого пользователя (user_id) нужно получить список — сервер использовал значение по умолчанию, т.е. ваш идентификатор, который он получил из токена.
Подробное руководство о получении ключей доступа находится на этой странице.
Как вы уже знаете, все методы делятся на секции — friends, photos, video и так далее. Каждая секция соответствует определенному разделу на сайте. Часто приложения создаются для работы с конкретным разделом. Например, для просмотра фотографий или для редактирования видео. При этом логично, что приложению, которое работает только с аудиозаписями пользователя, не нужен доступ одновременно и к его личным сообщениям.
Поэтому в API права доступа приложения разграничены, как и методы. Приложение может запросить доступ только к группам, а может — к группам, фотографиям и аудиозаписям. На этой странице перечислены все существующие права доступа, которые можно запросить.
Чтобы запросить права, используйте параметр scope диалога авторизации. Когда вы получали токен для своего приложения, в scope было указано значение friends — и в окне авторизации приложение запросило доступ к друзьям.
У каждого права доступа есть уникальное название («friends», «video» и т.д.) и код (+2, +4, +4096).
В scope можно перечислить названия нужных прав доступа (например, scope=friends,video,photos), а можно указать сумму их кодов (например, scope=22). Каждый код представляет собой степень двойки, и полученную таким образом сумму (битовую маску) вы всегда можете проверить на предмет содержания какого-то конкретного кода (см. account.getAppPermissions).
Некоторые права доступа из соображений безопасности можно запрашивать только в Standalone-приложениях и только в процессе авторизации Implicit Flow, обратите на это внимание.
Вы познакомились с основными понятиями, связанными с API ВКонтакте. Дальше все зависит лишь от вашего вдохновения.
Конечно, на практике никто не работает с API из соседней вкладки браузера. Для этого используют самые разные языки программирования, SDK, генераторы кода. Сам механизм работы с API весьма прост, средства для отправки http-запросов и обработки ответа от сервера предусмотрены практически в любой среде разработки: а значит, возможность выбора всегда есть.
Какой метод устанавливает новый статус текущему пользователю или сообществу в vk
В этом руководстве рассказывается о том, как использовать API для работы с сообщениями сообществ. Для чего нужен этот сервис и чем он может быть Вам полезен, можно прочитать на этой странице.
Для работы с API от имени сообщества необходимо получить специальный ключ доступа. Вы можете сделать это двумя способами — в интерфейсе управления сообществом или программно, с помощью специального запроса к нашему серверу.
Ключ доступа — это строка, включающая латинские буквы и цифры. Ее необходимо передавать в параметре «access_token», обращаясь к методам API от имени сообщества.
Откройте раздел «Управление сообществом» («Управление страницей», если у Вас публичная страница), выберите вкладку «Работа с API» и нажмите «Создать ключ доступа».
Отметьте необходимые права доступа и подтвердите свой выбор.
Вы можете создать несколько ключей с разными правами доступа. Ключи нельзя размещать публично — узнав его, третье лицо может обращаться к API ВКонтакте от имени Вашего сообщества. Если ключ был скомпрометирован, необходимо удалить его из списка — после этого он станет недействителен.
Мы предлагаем два способа авторизации, основанных на протоколе OAuth 2.0. Используйте этот подход, если необходимо работать со многими сообществами пользователя, например, при разработке мобильного приложения.
Для работы с API с серверной стороны используйте Authorization Code Flow.
Для работы с API со стороны клиента используйте Implicit Flow.
Параметр start_message_id используется для защиты от смещения из-за новых сообщений при подгрузке старых диалогов. При первом вызове не передавайте start_message_id, «запомните» значение id у сообщения в первом диалоге и используйте его в качестве start_message_id в последующих вызовах при подгрузке диалогов.
Передавайте в start_message_id значение id сообщения в первом диалоге, в count максимальное количество новых диалогов, а в offset, соответственно, отрицательное значение.
Чтобы получить историю конкретного диалога, используйте параметр peer_id. Параметр start_message_id используется для защиты от смещения из-за новых сообщений при подгрузке истории. При первом вызове не передавайте start_message_id, «запомните» значение id первого сообщения из ответа и используйте его в качестве start_message_id в последующих вызовах.
Callback API позволяет мгновенно получать информацию о новых сообщениях в адрес сообщества.
Для работы с Callback API Вам потребуется серверный скрипт для обработки уведомлений. Настройте оповещения, следуя документации, среди типов событий выберите «Получение нового сообщения» (message_new).
ВКонтакте будет отправлять на Ваш сервер оповещение о каждом новом сообщении в таком формате:
В уведомлении содержится исчерпывающая информация о сообщении — Вы можете сразу ответить на него, используя метод messages.send.
vk.me — это сервис коротких URL, который перенаправляет пользователей в указанный диалог.
Ссылка имеет формат http://vk.me/
Вы можете не только создать красивую ссылку на диалог с сообществом, но и передать в такой ссылке произвольные параметры ref и ref_source, которые вернутся в объекте сообщения в событии message_new Callback API или Bots Long Poll API, в случае если пользователь начнет или продолжит беседу по ссылке вида vk.me.
Это полезно для отслеживания эффективности ссылок, размещенных в разных каналах, или привязки пользователя к сеансу или аккаунту во внешнем приложении. В зависимости от переданного параметра можно варьировать ответы бота в сообществе.
Какой метод устанавливает новый статус текущему пользователю или сообществу в vk
Внутри code может содержаться не более 25 обращений к методам API.
То же самое можно более коротко записать так:
Обращение к элементам массива с результатом какого-либо метода всего должно основываться на структуре JSON, а не XML. Например, правильным обращением является API.photos.search(<"q":"Nature","count":3>).items@.owner_id;, а не API.photos.search(<"q":"Nature","count":3>).items@.photo@.owner_id;
Метод execute также может использоваться и для получения результатов нескольких не связанных между собой запросов.
В методе execute поддерживаются логические операции (больше), = (больше или равно), == (равно) и != (не равно). В данный момент поддерживаются сравнения двух строк, двух чисел и строки и числа (в этом случае строка приводится к числу).
Возвращает данные, запрошенные алгоритмом. При работе с методом execute структура ответа в XML ближе к JSON и может незначительно отличаться от стандартного представления других методов.
Обратите внимание: версия API, указанная при вызове execute, не применяется автоматически к методам, вызываемым внутри code.
Обратите внимание! Существует ограничение на объем ответа. В случае, если данные в ответе занимают больше 5 МБ, вернется ошибка 13 с комментарием «response size is too big».
VkApi (основной класс)¶
login (str) – Логин ВКонтакте (лучше использовать номер телефона для автоматического обхода проверки безопасности)
password (str) – Пароль ВКонтакте (если пароль не передан, то будет попытка использовать сохраненные данные)
token (str) – access_token
auth_handler – Функция для обработки двухфакторной аутентификации, должна возвращать строку с кодом и булево значение, означающее, стоит ли запомнить это устройство, для прохождения аутентификации.
captcha_handler – Функция для обработки капчи, см. captcha_handler()
config ( jconfig.base.BaseConfig ) – Класс для сохранения настроек
config_filename – Расположение config файла для jconfig.config.Config
api_version (str) – Версия API
app_id (int) – app_id Standalone-приложения
scope (int or str) – Запрашиваемые права, можно передать строкой или числом. См. VkUserPermissions
client_secret – Защищенный ключ приложения для Client Credentials Flow авторизации приложения (https://vk.com/dev/client_cred_flow). Внимание: Этот способ авторизации устарел, рекомендуется использовать сервисный ключ из настроек приложения.
login и password необходимы для автоматического получения токена при помощи Implicit Flow авторизации пользователя и возможности работы с веб-версией сайта (включая vk_api.audio.VkAudio )
session ( requests.Session ) – Кастомная сессия со своими параметрами(из библиотеки requests)
reauth – Позволяет переавторизоваться, игнорируя сохраненные куки и токен
token_only –
Включает оптимальную стратегию аутентификации, если необходим только access_token
Например если сохраненные куки не валидны, но токен валиден, то аутентификация пройдет успешно
При token_only=False, сначала проверяется валидность куки. Если кука не будет валидна, то будет произведена попытка аутетификации с паролем. Тогда если пароль не верен или пароль не передан, то аутентификация закончится с ошибкой.
Если вы не делаете запросы к веб версии сайта используя куки, то лучше использовать token_only=True
Проверка Cookies remixsid на валидность
Получение access_token из code
captcha – объект исключения Captcha
need_validation_handler ( error ) [source] ¶ Обработчик проверки безопасности при запросе API
error – исключение
Обработчик ошибок соединения
error – исключение
too_many_rps_handler ( error ) [source] ¶ Обработчик ошибки “Слишком много запросов в секунду”.
Ждет полсекунды и пробует отправить запрос заново
error – исключение
Обработчик двухфакторной аутентификации
Позволяет обращаться к методам API как к обычным классам. Например vk.wall.get(…)
method (str) – название метода
values (dict) – параметры
captcha_sid – id капчи
captcha_key (str) – ответ капчи
raw (bool) – при False возвращает response[‘response’] при True возвращает response (может понадобиться для метода execute для получения execute_errors)
class vk_api.vk_api. VkUserPermissions ( value ) [source]¶
Перечисление прав пользователя. Список прав получается побитовым сложением (x | y) каждого права. Подробнее в документации VK API: https://vk.com/dev/permissions
Пользователь разрешил отправлять ему уведомления (для flash/iframe-приложений). Не работает с этой библиотекой.
Доступ к фотографиям.
Доступ к аудиозаписям. При отсутствии доступа к закрытому API аудиозаписей это право позволяет только загрузку аудио.
Доступ к видеозаписям.
Доступ к wiki-страницам.
Добавление ссылки на приложение в меню слева.
Доступ к статусу пользователя.
Доступ к заметкам пользователя.
Доступ к расширенным методам работы с сообщениями.
Доступ к обычным и расширенным методам работы со стеной.
Доступ к расширенным методам работы с рекламным API.
Доступ к API в любое время. Рекомендуется при работе с этой библиотекой.
Доступ к документам.
Доступ к группам пользователя.
Доступ к оповещениям об ответах пользователю.
Доступ к статистике групп и приложений пользователя, администратором которых он является.