Streaming api vk что это

Здравствуйте, относительно недвано Вконтакте открыла Streaming API , но информации по ней не много 2 статьи на хабре, и документация с примерами использования на Go. С получением правил я разобрался:

function GetRules($end_point, $stream_key) < $resp = ‘https://’.$end_point.’/rules?key=’.$stream_key; $resp = file_get_contents($resp); $resp = json_decode($resp, true); return $resp; >

Но вот с добавлением правил я не понял, вот документация, и статья на хабре. Но я не понимаю как именно отправить запрос на добавление именно с PHP и какая ссылка запроса? Прошу помочь.

Отслеживать
задан 15 авг 2017 в 16:50
user240100 user240100
Ты все реализовал? Собираюсь для фирмы сделать подобное
28 ноя 2017 в 11:47

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Ждал я ответа, и пока ждал разобрался. Вопрос не стал закрывать т.к. это относительна новая вещь и информации по ней мало. Вот код

function SetRules($end_point, $stream_key, $value, $tag) < $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ‘https://’.$end_point.’/rules?key=’.$stream_key); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, ‘>’); curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-Type: application/json’)); $out = curl_exec($ch); curl_close($ch); echo $out; //здесь вам вернеться код 200/400 по желанию делайте return для проверки из-вне >
SetRules(‘streaming.vk.com’, ‘1234’, ‘test’, ‘1’);

streaming.vk.com — хост для подключения к серверу.

Парсим данные вконтакте. Что такое API? Программируем на python. Как спарсить данные через API?

1234 — ключ доступа. Ключ бессрочный и прекращает действовать только после получения нового ключа.

test — Значение для правила.

Источник: ru.stackoverflow.com

Streaming API ВКонтакте

ВКонтакте Streaming API

Информация о материале Родительская категория: Социальные сети Категория: VK (ВКонтакте)

  • Что происходит на стенах профилей и сообществ ВКонтакте
  • Оценка маркетинговой стратегии компаний во ВКонтакте
  • Возможности Streaming API во ВКонтакте
  • Базовая версия Streaming API ВКонтакте.

Что происходит на стенах профилей и сообществ ВКонтакте.

Каждый месяц на стенах профилей и сообществ ВКонтакте создаются сотни миллионов записей о том, о сём и даже вообще ни о чём. Пользователи делятся своим мнением обо всём, что их окружает, — от погоды до премьеры кинофильма. Этот колоссальный объём публичных данных вперемешку со спамом, скамом, выяснениями никому не нужной ерунды, включает в себя упоминания товаров и услуг, с которыми имеют дело потребители.

Еще по теме:  Как в ВК на телефоне поменять тему

Оценка маркетинговой стратегии компаний во ВКонтакте.

Бренды по всему миру давно анализируют записи из социальных сетей и рассматривают их как основной источник обратной связи от своих клиентов. С помощью такого анализа ВКонтакте можно оценить эффективность маркетинговой стратегии, изменения в восприятии продукта на фоне новой рекламной кампании и многое другое. Кроме того, подобный анализ часто необходим для некоммерческих исследований в области социологии, психологии и других отраслей науки. В общем, наблюдение за людьми с целью изучения их повадок в социальных сетях ведётся непрерывно всеми заинтересованными сторонами.

Получение токена пользователя в VK вконтакте для работы с API

Возможности Streaming API во ВКонтакте.

В этой публикации рассказано об инструменте, который создан для решения этой задачи. Streaming API во ВКонтакте позволяет «подписаться» на обновления публичного контента с нужными Вам ключевыми словами. Вы указываете, какие упоминания в записях Вас интересуют, и Streaming API отправляет Вам новые записи ВКонтакте с этими упоминаниями, как только они появляются на сайте этой социальной сети. Можно сравнить этот механизм с фильтром, который выбирает из всего потока только нужные данные и доставляет их по назначению.

Streaming API ВКонтакте отправляет Вам новые записи с этими упоминаниями

Технически процесс доставки данных организован с использованием протокола WebSocket, управление настройками осуществляется с помощью HTTP-запросов. Прочитать об этом подробнее Вы можете в технической документации по Streaming API ВКонтакте.

В отличие от существующего подхода с использованием методов обычного API, Streaming API ВКонтакте избавляет Вас от необходимости совершать множество повторных запросов на удалённый сервер. Не нужно беспокоиться, что Вы могли что-то пропустить — все релевантные записи будут доставлены Вам автоматически.

Базовая версия Streaming API ВКонтакте.

Базовая версия Streaming API ВКонтакте включает 1% всего публичного контента, публикуемого пользователями в социальной сети. Для доступа к расширенной версии, включающей 100% публичного контента, свяжитесь с разработчиками по адресу [email protected], указав в теме письма «Streaming API».

Еще по теме:  Как удалить танки онлайн ВК

Streaming API ВКонтакте запущен и разработчики приглашают всех желающих принять участие в конкурсе для проектов с использованием этого инструмента. Победители получат ценные призы и возможность присоединиться к команде ВКонтакте. Подробности Вы найдёте в официальном сообществе ВКонтакте.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Источник: mb4.ru

Использование VK Streaming API с оповещением в Telegram

Использование VK Streaming API с оповещением в Telegram

2017-07-23 в 17:39, admin , рубрики: python, telegram, vk api, Вконтакте API, Программирование

Использование VK Streaming API с оповещением в Telegram - 1

Вконтакте запустил Streaming API, инструмент для получения публичных данных из ВКонтакте по заданным ключевым словам.

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

Давайте напишем бота для телеграмма с оповещением о записях в ВК.

Получаем новости

Для начала нужно создать приложение в ВК и взять из настроек сервисный ключ

Использование VK Streaming API с оповещением в Telegram - 2

Для передачи данных используется протокол WebSocket. Испольхуем библиотеку «websocket».

import websocket

Перед соединением используйте метод streaming.getServerUrl. В качестве результата метод возвращает URL для дальнейших запросов в поле endpoint (string) и ключ доступа в поле key (string).

Получаем урл и ключ

def get_streaming_server_key(token): request_url = «https://api.vk.com/method/streaming.getServerUrl?access_token=<>.format(token) r = requests.get(request_url) data = r.json() return
def listen_stream(): websocket.enableTrace(True) ws = websocket.WebSocketApp(«wss://<>/stream?key=<> «.format(stream[«server»], stream[«key»]), on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever() def on_message(ws, message): print(«>>>> receive message:», message) def on_error(ws, error): print(«>>>> error thead:»,error) def on_close(ws): print(«>>>> close thead») def on_open(ws): print(«>>>> open thead») stream = get_streaming_server_key(my_servise_token) listen_stream()

После запуска в консоли должно появиться примерно следующее

— request header — GET /stream?key=e6290ba04916a314c398c331f60224d012fabeb1 HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: streaming.vk.com
Origin: streaming.vk.com
Sec-WebSocket-Key: vG40A5bwbPaVBS+DLBOyog==
Sec-WebSocket-Version: 13
— — response header — HTTP/1.1 101 Switching Protocols
Server: Apache
Date: Thu, 20 Jul 2017 22:06:55 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: QRJNqD8K7vWNMcQesYKo64q8MfA=
— >>>> open thead
send: b»x8ax80d’)x90″
send: b’x8ax80xfcmpxe6′
send: b’x8ax80sx9f6 send: b’x8ax80xc9xfa.xd4′
send: b’x8ax80fU send: b’x8ax80xc6Jix19′
send: b’x8ax80xd2Dx08!’

Работа с правилами

Метод HTTP POST
Content Type application/json
URL запроса https:///rules?key=

Еще по теме:  Как сделать статус в столбик в ВК

def set_my_rules(value): rule_params = <«rule»:<«value»:value,»tag»:’tag_’+str(random.randint(11111, 99999))>> headers = r = requests.post(«https://<>/rules?key=<>».format(stream[«server»], stream[«key»]), data=json.dumps(rule_params), headers=headers) data = r.json() return data[‘code’] == 200

Метод HTTP GET
URL запроса https:///rules?key=

def get_my_rules(): r = requests.get(«https://<>/rules?key=<>».format(stream[«server»], stream[«key»])) data = r.json() if data[‘code’] != 200: return False return data[‘rules’]

Метод HTTP DELETE
Content Type application/json
URL запроса https:///rules?key=

def del_my_rules(tag): headers = rule_params = r = requests.delete(«https://<>/rules?key=<>».format(stream[«server»], stream[«key»]), data=json.dumps(rule_params), headers=headers) data = r.json() return data[‘code’] == 200

Пробуем получить новости

stream = get_streaming_server_key(my_servise_token) set_my_rules(‘кот’) listen_stream()

В консоли должно появиться примерно следующее

send: b’x8ax80xc9xfa.xd4′
send: b’x8ax80fU send: b’x8ax80xc6Jix19′
send: b’x8ax80xd2Dx08!’
,«event_url»:«vk.com/wall-35708825_4560»,«text»:«vk.com/small.dolly
Пропал кот. В г.Электросталь на улице Загонова в районе 16 школы. Молодой мальчик, 2 года кастрирован. Обычного серого окраса с полосками. На подбородке и грудке белое пятно. Кот крупный около 7 кг.

Пропал 27 июня. Если кто-то его видел пожалуйста сообщите 89250506596 или 89251527466. Мы его очень любим и хотим чтобы он вернулся домой»,«creation_time»:1498942995,«tags»:[«test_cats»],«author»:>> — наша новсть

Телеграмм

Используем библиотеку «telebot».

import telebot TELEGRAM_API_TOKEN = ‘3277332. ‘ # токен выдаваемый при создании бота bot = telebot.TeleBot(TELEGRAM_API_TOKEN)

Использование VK Streaming API с оповещением в Telegram - 3

Использование VK Streaming API с оповещением в Telegram - 4

if message.text == ‘Добавить’: msg = bot.send_message(chatID, «Что добавить?») bot.register_next_step_handler(msg, add_rule_handler) . def add_rule_handler(message): new_rule = set_my_rules(message.text) if new_rule: _send(«Successful») else: logging.debug(«Error add rules») _send(«Error»)

Мои интересы

def get_rules_list(): rules = get_my_rules() if rules: return «n».join([str(rule[‘value’]) for rule in rules]) else: logging.debug(«Error get rules list») return ‘Error’

Очистить список интересов

def clear_rules_list(): rules = get_my_rules() if rules: for rule in rules: del_my_rules(rule[‘tag’]) return «Successful» else: logging.debug(«Error clear rules list») return ‘Error’

Отправка новостей

def on_message(ws, message): print(«>>>> receive message:», message) message = json.loads(message) if not message[‘code’]: return if not message[‘event’][‘event_type’] or message[‘event’][‘event_type’] != ‘post’: return # выходим, если запись не отдельный пост post = message[‘event’][‘event_type’] +»n»+message[‘event’][‘text’].replace(«
«, «n») +»nn»+ message[‘event’][‘event_url’] _send_post(post)

Запускаем все вместе

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

def listen_stream(): websocket.enableTrace(True) ws = websocket.WebSocketApp(«wss://<>/stream?key=<> «.format(stream[«server»], stream[«key»]), on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open #ws.run_forever() wst = threading.Thread(target=ws.run_forever) wst.daemon = True wst.start()
if __name__ == ‘__main__’: try: chatID = 0 stream = get_streaming_server_key(my_servise_token) listen_stream() bot.polling(none_stop=True) except Exception as e: logging.exception(«error start»)

Источник: www.pvsm.ru

Рейтинг
( Пока оценок нет )
Загрузка ...