Работа с методами ВКонтакте API на стороне клиента и сервера

Часто начинающие пытаются использовать все методы ВКонтакте API с сервера (PHP).
В этой статье я опишу почему при создании Flash/IFrame-приложений не все методы можно вызывать с сервера и как определить можно ли вызвать конкретный метод API с сервера.



Существует 2 способа взаимодействия с ВКонтакте API:

На стороне клиента (JavaScript)
На стороне сервера (PHP и др. серверные языки)
Некоторые методы можно вызывать только на стороне клиента, а некоторые только на стороне сервера. Большинство методов ВКонтакте API можно использовать только на стороне клиента.

Почему не все методы можно вызвать на стороне клиента

Со стороны клиента нельзя вызывать secure.* методы. Эти методы нужно вызывать только с сервера, потому что вызывать их со стороны клиента не безопасно. Злоумышленник сможет получить доступ к балансу приложения, возможность отправлять уведомление пользователям и другие секретные данные.

Почему не все методы можно вызвать с сервера

При авторизации пользователя ВКонтакте, в браузере пользователя храниться информация, по которой сайт ВКонтакте идентифицирует пользователя.
Сервер (хостинг) - это не компьютер пользователя. Это отдельный компьютер. На нем не хранится информация пользователя. Вызывая методы API с сервера, сайт ВКонтакте не может идентифицировать пользователя.
Если метод работает с какими-то данными конкретного пользователя, то API должно знать с данными какого пользователя нужно работать. Если в методе есть параметр для передачи ID пользователя, то можно попробовать вызвать метод с сервера.

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

[error_code] => 3
[error_msg] => Unknown method passed
то метод не работает с сервера.

Методы, вызываемые со стороны клиента

Все методы ВКонтакте API, кроме secure.* методов

Методы, вызываемые с серверной стороны

Официально (описано в документации):

secure.*
friends.get
Неофициально:

isAppUserusers.get
getUserSettings
likes.getList
groups.getById
groups.isMember
photos.getAlbums
photos.get
wall.get
wall.getById
newsfeed.search
storage.get
storage.set
getServerTime
Теги:
ВКонтакте API, клиент, сервер
Добавлено: 24 Февраля 2015 06:41:36 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...