Пятница, 03.05.2024, 06:50
Меню сайта
Категории раздела
JQuery плагины [59]
JQuery уроки [69]
PHP полезное [24]
PHP уроки [21]
Css [26]
JS [3]
SQL [9]
Css 3 [17]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » PHP полезное

Как работать с vk API вконтакте

Как работать с vk API вконтакте

Как работать с vk API вконтакте

Здравствуйте, уважаемые читатели блога, у многих из нас есть собственная страница в социальной сети вконтакте, все мы знаем, что каждый пользователь вконтке имеет возможность оставлять комментарии на стене других пользователей и различных сообществ. Сегодня я хочу показать вам как можно работать с данными этого сервиса, через предоставляемый вконтактом инструмент vk api , а именно как с помощью PHP получить все сообщения любого пользователя и его друзей.

Также в статье будет рассказано, как без использования API вконтакте осуществить автоматическую отправку текста на стену группы.

Создание приложения для получения доступа к vk API

Нас будет интересовать обращение по HTTP протоколу к адресу http://api.vk.com/api.php . На него мы будем высылать команды с определенными параметрами, а в ответ получать какие либо данные, предоставляемые сервисом вконтакте.

Самым первым делом необходимо создать новое приложения в VK.com, поскольку для работы с vk API надо иметь на это специальную подпись. Кроме того надо проштудировать всю информацию представленную в документации сервиса

Внимание! Если нам нужно только обращаться со своего сайта к API, и при этом мы совершенно не думаем о каких либо приложениях для мобильных телефонов, или декстопных приложениях,то все равно придется зарегистрировать его во вконтакте.

Чтобы создать свое приложение нужно перейти к форме создания приложения вконтакте и заполнить все необходимые поля:

создание приложения API в вконтакте.jpg

После заполнения сохраняем введенные значения и получаем интересующие нас данные: id приложения и секретный ключ. Используя их мы в дальнейшем сможем работать с vk API.

После регистрации своего приложения мы сможем управлять настройками приложения созданного приложения

После этого нам потребуется класс для работы с vk API для этого скачиваем php библиотеку прямо с vk.com.

скачать vkapi.class.php ( Скачали: 62 чел. ) 

Права приложения

Для доступа к данным пользователя, приложение должно обладать набором соответствующих прав.

Предварительно, перед началом использования vkapi.class.php, надо разобраться, с тем как нашему созданному приложению, получать права для работы с тем или иным пользователем.

По умолчанию права созданного приложения – минимальны, и их не достаточно даже для того чтобы получить список друзей указанного пользователя, не говоря уже об оставлении записей на его стене.

Для всех приложений, api вконтакте предоставляет таблицу битовых масок, другими словами набор прав для приложения.

Советую вам самостоятельно ознакомиться с перечнем прав и их битовых масок.

Если Вы хотите получить права на "доступ к друзьям" и "доступ к обычным и расширенным методам работы со стеной", то ваша битовая маска будет равна: 2 + 8192 = 81924.

Если, имея битовую маску 81924, вы хотите проверить, имеет ли она доступ к расширенным методам работы со стеной, то можете сделать это таким образом:

1
echo 81926 & 81924;

Если права подтверждены, то 81926 & 81924 даст результат = 8192, иначе = 0

Чтобы web-приложение запросило разрешение на те или иные права, нужно дать пользователю ссылку специального формата:

1
2
3
4
5
https://oauth.vk.com/authorize?
 client_id=APP_ID&
scope=SETTINGS&
redirect_uri=REDIRECT_URI&
response_type=code
  • APP_ID – идентификатор вашего приложения;
  • SETTINGS – запрашиваемые права доступа приложения;
  • REDIRECT_URI – адрес, на который будет передан code. Этот адрес должен находиться в пределах домена, указанного в настройках приложения.

Перейдя по такой ссылке, пользователю, будет предложено авторизоваться на vk.com и подтвердить разрешение на запрашиваемые нашим приложением права.

В моем случае ссылка будет выглядеть таким образом:

1
2
3
4
5
<a href="https://oauth.vk.com/authorize?
client_id=3471327&
scope= notify,friends,photos,audio,video,docs,notes,pages,status,offers,questions,wall,groups,messages,notifications,stats,ads,offline,nohttps, &
redirect_uri=http://moguta.ru/&
response_type=code ">
Разрешить приложению Moguta работать с моими данными из VK</a>

Параметром scope, я запрашиваю у пользователя разрешение на использование всех имеющихся данных, перечислив все известные идентификаторы прав.

разрешение прав для приложения вконтакте

После подтверждения, vk api высылает назад на указанный redirect_uri код, по которому мы сможем в течении часа получать access_token чтобы работать с API вконтакте.

Закончив процесс получения разрешения, от пользователя на доступ к его информации, мы можем начинать работу с API вконтакте, а именно с классом vkapi.class.php

PHP Пример работы с API vkontakte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?
$api_id = 4471324;
$secret_key = 'Y1fXgdIl3aPiejBHO4g';

function verRoles($maskBit){
    $assocBitandRole= array(
        '1'=>'notify',
        '2'=>'friends',
        '4'=>'photos',
        '8'=>'audio',
        '16'=>'video',
        '32'=>'docs',
        '64'=>'notes',
        '128'=>'pages',
        '256'=>'status',
        '512'=>'offers',
        '1024'=>'questions',
        '2048'=>'wall',
        '4096'=>'groups',
        '8192'=>'messages',
        '32768'=>'notifications',
        '131072'=>'stats',
        '262144'=>'ads',
        '524288'=>'offline',
        '1048576'=>'nohttps',
    );
    $res = '<br/>Доступно:';
    $nores = '<br/>Не доступно:';
    foreach($assocBitandRole as $bit=>$role){
        if((int)($maskBit) & (int)$bit){
            $res .= ",".$role;
        } else {
            $nores .= ",".$role;
        }
    }
    return $res.'</br>'.$nores;
}
if(!empty($_GET['code'])){
    header('Location: https://oauth.vk.com/access_token?
    client_id='
.$api_id.'&
    client_secret='
.$secret_key.'&
    code='
.$_GET['code'].'&
    redirect_uri=http://moguta.ru/vk& '
);
} else {
    echo '<a target="_blank" href="https://oauth.vk.com/authorize?
     client_id='
.$api_id.'&
     scope=notify,friends,photos,audio,video,docs,notes,pages,status,offers,questions,groups,notifications,stats,ads,offline,nohttps,&
     redirect_uri=http://moguta.ru/vk&
     response_type=code ">Разрешить приложению Moguta работать с моими данными из VK</a>'
;
}
require 'vkapi.class.php';
$VK = new vkapi($api_id, $secret_key);


//получить битовую маску приложения для конкретного пользователя
$resp = $VK->api('getUserSettings', array('uid'=>'150317299'));
echo verRoles($resp['response']);

Результат работы скрипта должен вывести информацию о правах приложения по отношению к пользователю с id=’150317299′. Получить битовую маску прав приложения можно командой getUserSettings.

Битовая маска приложения проверка прав

Как видите скрипт вывел перечень доступных прав исходя из значения битовой маски. По умолчанию для каждого нового пользователя битовая маска будет равна 0, пока посетитель сайта не перейдет по указанной ссылке "Разрешить приложению Moguta работать с моими данными из VK".

Подтвердив разрешение, пользователь даст нам возможность работать с его данными и мы сможем, выполнить несколько полезных в разных задачах методов, например.

Получить список друзей пользователя:

1
2
//получить друзей
$resp = $VK->api('friends.get', array('uid'=>'150317299'));

Получить список последних сообщений на стене пользователя

1
$resp = $VK->api('wall.get', array('owner_id'=>'150317299'));

Получение лайков с указанной страницы.

1
2
3
4
5
// owner_id — это id сайта, к которому прикручен лайк
//vkontakte.ru/developers.php?oid=-1&p=Like     - в коде видны цифирки, это owner_id
$resp = $VK->api('likes.getList', array(
'type'=>'sitepage', 'owner_id'=>'2633539', 'page_url' => 'http://lifeexample.ru/php-primeryi-skriptov/mvc-fundament-internet-magazina.html'
));

Весь перечень доступных для vk Api методов перечислен в этом разделе документации

И в конце статьи хочу указать на одну огромную неприятность, о которой сказано в описании права wall отвечающего за работу со стеной.

Внимание, данное право доступа недоступно для сайтов (игнорируется при попытке авторизации).

Нельзя отправлять сообщения на стену

Это значит, что автоматический репост сообщений на стену из веб-приложений запрещен и можно даже не пытаться делать авторепост новостей в группу средствами API вконтаке. Данный факт несколько огорчил меня, поскольку все, что мне было надо от vk api это отправлять новость с сайта moguta.ru в группу автоматически.

Тем не менее, нет ничего невозможного, если контакт не разрешает делать это своими инструментами, пойдем в обход.

Автопостинг на стену вконтакте без vk api

В сети я нашел полезный в данной задаче класс vk_poster.class.php:

Данный класс позволяет репостить на стену контакта, с помощью php библиотеки CURL. Получив необходимые для авторизации данные этот класс эмитирует действия пользователя, как будто тот авторизуется в vk.com переходит на указанную стену, и отправляет сообщение от своего имени.

Т.е. весь репост сводится к использованию CURL без API vk. Из минусов данного подхода, только не высокая скорость работы приложения, поскольку нужно в несколько этапов отправлять последовательность HTTP запросов, чтобы осуществить публикацию информации на стене сообщества, либо конкретного пользователя.


Кроме этого способа можно воспользоваться замечательной программой imacros, которая может повторить любое действие человека, но выбирать ее или нет , это зависит от конкретной задачи.

Категория: PHP полезное | Добавил: ChronoW (21.04.2013)
Просмотров: 32312 | Комментарии: 83 | Теги: php vk API, Как работать с vk API вконтакте | Рейтинг: 0.0/0
Всего комментариев: 131 2 »
13 TravelerBum  
0
With thanks for sharing this nice website. See too my web page

https://www.mistralbg.com/pochivki-turcia/antalia-belek почивка в фетие турция

ptmis+

12 Stephencilt  
0
Мобильная эротика и виртуальный секс - <a href=https://pornopda.xyz/virt/sexcard/32726-otkrytost-i-bezopasnost-kak-virtualnyj-seks-stal-alternativoj-realnym-otnoshenijam-deshevyj-virt-po-telefonu-dlja-vas.html>Секс по телефону - Развлекательная Служба</a>, способствует развитию культуры сексуальных возможностей и автономии. Поощряя людей исследовать свои желания на собственных условиях, эти платформы помогают разрушить представление о том, что секс должен контролироваться или диктоваться внешними силами. Вместо этого они продвигают представление о сексуальности, основанное на согласии, удовольствии и взаимном уважении.
В мире, где сексуальность часто контролируется и ограничивается, мобильная эротика предлагает маяк надежды и возможностей. Это напоминание о том, что каждый заслуживает права свободно и без страха осуждения исследовать свои желания и получать удовольствие от жизни.
Номер телефона для знакомств и вирта, а также <b>Русское порно реальное с разговорами телефон : секс по телефону с МТС и Билайн <a href="tel:+78095056850">+7-809-505-6850</a>. Можно позвонить с мобильного и городского телефона, а также заказать обратный звонок вирт секс номера телефонов </b> после оплаты картой девушка позвонит на ваш телефон.

Если вы ищете дополнительный источник удовольствия, который доступен в любое удобное для вас время, то секс по телефону именно то, что вам нужно. Вам больше не придется ограничиваться рамками обычной интимной жизни.
Мы гарантируем полную конфиденциальность и анонимность наших услуг <a href=https://pornopda.xyz/virt/sexcard/32707-psihologicheskie-osobennosti-muzhchin-zanimajuschihsja-platnym-seksualnym-obscheniem-po-telefonu-sex-home-phone.html>Секс телефон анкеты</a>. Вы можете быть уверены, что ваша личная жизнь останется только вашей тайной.
В последние годы виртуальный секс и удовлетворение на расстоянии, переживает всплеск популярности, во многом благодаря достижениям в области технологий и изменению отношения к сексуальности. Поскольку смартфоны становятся неотъемлемой частью повседневной жизни, все больше и больше людей обращаются к своим устройствам, чтобы исследовать свои желания и общаться с единомышленниками.
Одним из ключевых факторов роста спроса на <a href=https://pornopda.xyz/virt/sextel/14940-besplatnyj-seks-po-telefonu-nomera-devushek-new.html>Новый способ наслаждения: разговоры о сексе с моделью-оператором, вирт со зрелой номера телефонов</a>, является доступность цифрового контента. Всего несколькими нажатиями на телефоне вы получите доступ к огромному количеству чувственных изображений, видео и историй, адаптированных к вашим личным вкусам и предпочтениям. Эта простота доступа помогла демократизировать эротику, сделав ее более инклюзивной и доступной для людей любого происхождения и идентичности.
Самые горячие разговоры <b>индивидуалки вирт по телефону </b> только у нас!

Кроме того, мобильная эротика - <a href=https://pornopda.xyz/pornopda/interracial/10747-negr-po-ocheredi-trahaet-latinu-i-evropeyku.html>Три девушки в порно видео жесткая групповуха</a>, предлагает уровень интерактивности и вовлеченности, с которым традиционные формы эротики просто не могут сравниться. Эти платформы — от захватывающих виртуальных впечатлений до функций чата в реальном времени — позволяют пользователям общаться с другими способами, которые кажутся интимными и личными.
Но с ростом популярности возникают новые проблемы и соображения. Поскольку развлечения на сайтах становятся все более популярными, для платформ важно уделять приоритетное внимание безопасности и конфиденциальности пользователей, внедряя надежные меры безопасности для защиты от преследований и злоупотреблений.
В целом, рост спроса на секс в виртуальной среде, представляет собой сейсмический сдвиг в том, как мы взаимодействуем с сексуальностью и желанием. Используя возможности технологий, эти платформы помогают создать более инклюзивный и свободный мир эротики для всех.

11 Davidinduh  
0
Создавайте ваш контент через нейросети - https://kurl.ru/GySYB! Копирайтеры больше не нужны!

Сейчас у вас появилась уникальная возможность быстро генерировать качественные тексты через НЕЙРОСЕТИ. И далее
использовать их как основу для вашего многообразного контента.

Скачайте pdf-отчет и инфографику с вариантами контента здесь:

https://kurl.ru/GySYB

10 RafaelPep  
0
Добрый день.

Заставлю менеджеров работать! Сбор данных компаний из открытых источников - этой основное чем я занимаюсь постоянно! Миллионы свежайших и живых контактов!

Много баз я выкладываю в своём телеграм-канале бесплатно, поэтому сейчас в моём канале https://t.me/basefree выложена БЕСПЛАТНО база "Краснодар и область. Базы отдыха. В этой базе все базы отдыха Краснодара и области.

Кроме того, для реального продвижения вашего бизнеса вы можете заказать рассылку по формам обратной связи 600 000 сайтов всего за 6 000р. Исключительно РУ-сайты. СУПЕР - ЭФФЕКТ!

А также email-рассылку (0,4р. за письмо. базу соберу сам) - классика, которая работает ВСЕГДА!

САМОЕ ГЛАВНОЕ! Мой собственный ВПН сервис, который не блочит РКН - к вашим услугам! Совсе не дорого - в канале https://t.me/basefree всё есть.

9 WilliamWew  
0
Коды активации ОФД и фискальные накопители для онлайн кассы по оптовым ценам!
Отгружаем в течение 15 минут!
https://ofd-mag.ru наш сайт
https://wa.me/message/FZ26KUHMIS4HO1 наш вотсап
https://t.me/ofdmag наш телеграмм
+7 953 786-70-40 контактный телефон

8 Richardploli  
0
Скалки профессиональные "Профскалка" на подшипниках - https://proffskalka.ru?utm_source=fos&utm_medium=email&utm_campaign=skalki

Повышают производительность. Для работы с большими объемами теста.

Руки не устают. Работается с ветерком. Разная длина и диаметр.

Посмотреть и заказать можно на сайте https://proffskalka.ru?utm_source=fos&utm_medium=email&utm_campaign=skalki

Email: arkady.leonidovich@yandex.ru

Нас легко найти наберите в любом поисковике "Профскалка".

7 DrolLom  
0
Добрый день.

Я занимаюсь сбором баз предприятий.

Причём многие базы я выкладываю в своём телеграмм-канале бесплатно.

Например, сейчас в моём канале https://t.me/basefree выложена БЕСПЛАТНО база МЕДИЦИНА.

В этой базе все медицинские центры, аптеки, мтоматология, мед. анализы, лаборатории и многое другое.

Кроме этой базы, в канале вы найдёте очень много других баз предприятий.

Присоединяйтесь! Также я делаю рассылки по емейлам и формам обратной связи сайтов.

6 Miguelcoins  
0
Доставка по всей России или самовывоз
Нам 15 лет

ПАКЕТЫ с лого от 50 шт. • СКОТЧ c ЛОГО от 30 шт. • ЕЖЕДНЕВНИКИ • ВИЗИТКИ • РУЧКИ • ЛИСТОВКИ • ПОДАРКИ с лого • НАКЛЕЙКИ • КАТАЛОГИ • СТАКАНЧИКИ с лого

Пакет ПВД 40х50 см, белый, (плотный, нешуршащий - акция 70 мкм по цене 50 мкм),
с прорубной укрепленной ручкой:

Нанесение с 1 стороны в 1 цвет:

50 шт. - 8 500 руб.
100 шт. - 9 900 руб.
200 шт. - 14 500 руб.
300 шт. - 17 100 руб.
500 шт. - 21 900 руб.
1000 шт. - 35 100 руб.

Размеры в наличии
20х30см, 30х40см, 35х35см, 40х40см, 40х50см,
45х45см, 50х60см, 60х50см, 70х60см

Разные цвета полиэтилена

Скотч с логотипом
скотч 48мм ширина, 66м длина, 45мкм, белая основа,
печать логотипа в 1 цвет
30 рулонов - 16 500 руб.
72 рулона - 17 900 руб.
100 рулонов - 19 500 руб.

8 (495) 508-67-70
8 (926) 011-73-34
8 (925) 508-67-70 (WhatsApp)
www.5086770.ru
https://promo.fabrika-sov.site
info@5086770.ru
fabrika-sov@yandex.ru

5 Mom  
0
Hi, this is Julia. I am sending you my intimate photos as I promised. https://tinyurl.com/y9mlwsac

4 hashmap  
0
Привет. За последние два года коронавирус хладнокровно убивает бизнес. Все сидят по удалёнкам, а кого то и вовсе увольняют. Людей стремящихся к повышению своих профессиональных навыков или освоению новых, наверняка заинтересует моё предложение. Качайте самые свежие и популярные платные курсы, книги, тренинги и вебинары от известных авторов по самым разным направлениям. Повышайте свою квалификацию, укрепляйте ваш бизнес, познавайте себя и окружающий мир, заводите новые хобби и прокачивайте свои навыки. Цена вечной подписки символическая 1000 руб.

Вы получите возможность скачивать платные профессиональные курсы, стоимость некоторых в несколько раз превышают сумму вечной подписки. Освойте новую профессию или просто изучайте интересные вам материалы.

Упомянутый ресурс вы сможете найти по адресу https://vk.cc/cam2Yr либо написав любое сообщение в telegram пользователю @AliceSugar ( https://t.me/AliceSugar ).

Вы так же можете отписаться от данной рассылки заполнив форму https://docs.google.com/forms/d/e/1FAIpQLSci7Qu_YAf-A_Ml8pL8fO7ClI1W1XEzMyfzp0NS0fZiPYtprA/viewform?usp=sf_link

1-10 11-13
Имя *:
Email *:
Код *: