Иногда возникает необходимость автоматизировать некоторые действия в какой-нибудь абстрактной, или не совсем абстрактной, социальной сети, такой как vk.com. Например, в последнее время были популярны обсуждения на тему скачивания своей аудиоколлекции на постоянные носители.
Здесь будем рассматривать только один частный случай - API для vk.com.
Итак, задача - собирать сообщения из интересующей группы, чтобы не загромождать кодом этот пост, построим лишь простой "скелет", для возможных будущих наработок.
Кратко о принципе работы интерфейса, предоставляемого разработчиками этой небезызвестной социальной сети :
Здесь будем рассматривать только один частный случай - API для vk.com.
Итак, задача - собирать сообщения из интересующей группы, чтобы не загромождать кодом этот пост, построим лишь простой "скелет", для возможных будущих наработок.
Кратко о принципе работы интерфейса, предоставляемого разработчиками этой небезызвестной социальной сети :
- Для работы через API вам потребуется stand-alone приложение, создать его можно вот здесь. Там все довольно просто, выбираете название и тип. Вообще говоря, создавать свое приложение вовсе не обязательно, можете и мое использовать - дело в том, что при дальнейшем запросе определенных прав для данного приложения, мы получим токен, и этот токен самому приложению известен не будет, следовательно, даже если вы используете мое приложение, я не смогу получить доступ к вашей конфиденциальной информации.
- Дальше, для авторизации будет использоваться протокол OAuth, все что нужно сделать на этом шаге - создать правильную строку запроса, об этом расписано вот тут.
APP_ID - идентификатор приложения, которое вы создали на предыдущем шаге.https://oauth.vk.com/authorize? client_id=APP_ID& scope=PERMISSIONS& redirect_uri=REDIRECT_URI& display=DISPLAY& v=API_VERSION& response_type=token
PERMISSONS - те права, которые вы хотел бы предоставить вашему приложению, их список можно найти вот тут, там же есть и пример.
REDIRECT_URI - страничка, на которую вас перенаправит, после предоставления прав, для нашего случая можно использовать :
В адресной строке будет токен, который, в общем, и является конечной целью.https://oauth.vk.com/blank.html
Остальный опции сейчас не представляют для нас интереса, по-этому просто перечислю выбранные для них значения :
DISPLAY - page
API_VERSION - 5.0
В response_type указываем, что нам нужен только токен. - На этом шаге у нас уже есть необходимый токен, все что теперь осталось сделать - открыть документацию на интересующий нас метод API и составить верный запрос.
Итак, мы планируем запросить все записи со стены в определенной группе, для этого идеально подойдет wall.get, сам запрос должен выглядеть следующим образом :
METHOD_NAME = WALL.GEThttps://api.vk.com/method/METHOD_NAME?PARAMETERS&access_token=ACCESS_TOKEN
Перечислю нужные параметры :
domain - краткое название группы, сейчас все пытаются "выделиться" и заменюят ID группы в адресной строке, на что-то более-менее читабельное. (если же к целевой группе нужно обратиться по идентификатору, то тут вам возможно подойдет owner_id)
count - количество возвращаемых записей
access_token - тот самый токен, что мы уже получили. Тут есть некоторая тонкость, к стене открытой группы можно получить доступ и без указания уникального токена, но для того, чтобы получить записи из закрытой группы, в которой состоим, нужно обязательно указать токен, рассматривайте его как пропуск. - Вот в общем и все. Можно приступить к написанию кода.
Получаемый ответ будет в формате JSON, перечислю библиотеки, которые будем использовать :
Из HttpClient нам понадобятся - httpcore, httpclient, commons-logging
Ниже приведу непосредственно код, он прост и думаю всем будет понятен.
Комментариев нет:
Отправить комментарий