Приватность и права доступа
Права доступа
Часть методов API подразумевает предварительную авторизацию пользователя с получением определенных прав доступа. Эта информация отражена в верхней части страницы с описанием любого метода.
Если на странице с описанием сказано, что метод не требует прав доступа, это означает, что для его вызова достаточно простой авторизации без специального scope, однако параметр access_token должен присутствовать в запросе.
Если метод работает с информацией, доступной в основной версии сайта без авторизации пользователя (например, имя пользователя с заданным id), для его вызова не требуется передача access_token. Такие методы называются открытыми, к ним относится, например, users.get. Следует иметь в виду, что среди такой информации могут встречаться данные, которые пользователь скрыл с помощью настроек приватности. Настройки приватности для текущего пользователя, в свою очередь, учитываются только при передаче access_token, в противном случае в ответе будут содержаться лишь те данные, которые доступны «по умолчанию», т.е. для неавторизованного просмотра от пользователя, который не состоит в друзьях или в черном списке у запрашиваемого.
Так, например, при вызове метода wall.get с access_token друга запрашиваемого пользователя в ответе будут, в числе прочих, содержаться записи с пометкой «Только для друзей», без передачи access_token — только записи с общим доступом.
Также для вызова без access_token не передается значение «по умолчанию» входного параметра user_id(s), при необходимости запросить информацию о текущем пользователе его нужно задавать явно.
Формат приватности
Получение приватности
Версия API 5.30 и выше
Приватность возвращается в API в виде массива из следующих возможных значений:
- •
all– Доступно всем пользователям; - •
friends– Доступно друзьям текущего пользователя; - •
friends_of_friends/friends_of_friends_only– Доступно друзьям и друзьям друзей / друзьям друзей текущего пользователя (friends_of_friends_onlyпоявился с версии 5.32); - •
nobody/only_me– Недоступно никому / доступно только мне; - •
list{list_id}– Доступно друзьям текущего пользователя из списка с идентификатором{list_id}; - •
{user_id}– Доступно другу с идентификатором{user_id}; - •
-list{list_id}– Недоступно друзьям текущего пользователя из списка с идентификатором{list_id}; - •
-{user_id}– Недоступно другу с идентификатором{user_id}.
Пример:
Доступно всем пользователям, кроме друзей из списка №2 и кроме друга id1234:
privacy_view: ['all', '-list2', -1234]
Версия API ниже 5.30
Приватность возвращается в API в виде объекта, содержащего следующие поля:
- •
type– Тип приватности, может быть равен:- •
nobody– Ни один пользователь; - •
all– Все пользователи; - •
friends– Друзья текущего пользователя; - •
friends_of_friends– Друзья друзей текущего пользователя; - •
users– Определенный список пользователей, переданный в полеusers.
- •
- •
lists– Массив из пользовательских списков, которые добавляются к пользователям принадлежащим к типу в полеtype; - •
except_lists– Массив из пользовательских списков, которые исключаются из пользователей принадлежащих к типу в полеtype; - •
users– Массив из идентификаторов пользователей, которые добавляются к пользователям принадлежащим к типу в полеtype; - •
except_users– Массив из идентификаторов пользователей, которые исключаются из пользователей принадлежащих к типу в полеtype;
Пример:
Доступно друзьям пользователя, кроме друзей из списков №25 и №27
privacy_view: {
type: 'friends',
except_lists: [25, 27](25%2C_27)
}
Указание приватности
Некоторые методы позволяют устанавливать приватность на объекты, для этого предусмотрен специальный формат значений, передаваемых в соответствующий параметр приватности.
Версия API 5.30 и выше
Значение приватности передается в виде списка строк, разделенных запятыми, из следующих возможных значений:
- •
all– Доступно всем пользователям; - •
friends– Доступно друзьям текущего пользователя; - •
friends_of_friends– Доступно друзьям друзей текущего пользователя; - •
nobody/only_me– Недоступно никому / доступно только мне; - •
list{list_id}– Доступно друзьям текущего пользователя из списка с идентификатором{list_id}; - •
{user_id}– Доступно другу с идентификатором{user_id}; - •
-list{list_id}– Недоступно друзьям текущего пользователя из списка с идентификатором{list_id}; - •
-{user_id}– Недоступно другу с идентификатором{user_id}.
Пример:
friends,-list2,-1234
Версия API ниже 5.30
Простые значения приватности
- •
0— Все пользователи; - •
1— Только друзья; - •
2— Друзья и друзья друзей; - •
3— Только я.
Некоторые друзья
Для того, чтобы разрешить доступ только определённым друзьям необходимо указать значение параметра в соответствующем формате:
users: friendId, friendId, ...
Пример:
users: 1, 6492
Некоторые списки друзей
Для того, чтобы разрешить доступ только определённым спискам друзей необходимо указать значение параметра в соответствующем формате:
lists: listId, flistId, ...
Списки друзей вы можете получить используя метод friends.getLists.
Пример:
lists: 1, 2