Отправляем уведомления с помощью БД

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Dmitry
Сообщения: 70
Зарегистрирован: 05 дек 2009, 13:51

Отправляем уведомления с помощью БД

Сообщение Dmitry »

Если Ваше приложение использует MySQL базу данных, то Вам будет удобно отправлять множество уведомлений одновременно.

Внимание! В таблице вашей базы должно быть поле, содеражащее ID пользователей. В данном примере поле называется UserID.

Код: Выделить всё

<?php require('VkApi.class.php');$api = new VkApiNode('ID приложения', 'Защищенный ключ (вкладка "Платежи")');function get_url($query) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $query);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT, 10);return curl_exec($ch);curl_close($ch);} $link = mysql_connect("localhost", "Логин", "Пароль к БД") or die("Не могу подключиться");mysql_select_db (Имя БД) or die ("Невозможно открыть базу"); $result = mysql_query("SELECT * FROM Название таблицы"); while($r=mysql_fetch_array($result)) { get_url($api->sendNotification(array($r[UserID]), 'Текст сообщения'));} ?>
Как мы видим, уведомления отправляются в цикле до тех пор, пока записи не закончатся.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Отправляем уведомления с помощью БД

Сообщение Александр »

Уведомления отправляются только первым 100 id?
В методе sendNotification есть ограничение на количество id в одном запросе.
Аватара пользователя
Dmitry
Сообщения: 70
Зарегистрирован: 05 дек 2009, 13:51

Re: Отправляем уведомления с помощью БД

Сообщение Dmitry »

Мне кажется, что нет. Ограничение в 100 ID стоит на массив ID, то есть ограничение действует если мы отправляем так:

Код: Выделить всё

get_url($api->sendNotification(array(1,2,3,4,5,6,...,101), 'Текст сообщения'));
В этом случаем ID 101 не получит уведомление. А в нашем случае для каждого ID отправлятеся свое уведомление. Фактически мы отправляем так:

Код: Выделить всё

get_url($api->sendNotification(array(1), 'Текст сообщения'));get_url($api->sendNotification(array(2), 'Текст сообщения'));get_url($api->sendNotification(array(3), 'Текст сообщения'));get_url($api->sendNotification(array(4), 'Текст сообщения'));...get_url($api->sendNotification(array(N), 'Текст сообщения'));
Серёга
КИДАЛА!
Сообщения: 36
Зарегистрирован: 25 ноя 2009, 23:41

Re: Отправляем уведомления с помощью БД

Сообщение Серёга »

Долго всем рассылать будет, но всё равно спасибо)
Sudba
Сообщения: 20
Зарегистрирован: 01 мар 2010, 01:08

Re: Отправляем уведомления с помощью БД

Сообщение Sudba »

Долго не долго, а больше готовых вариантов никто не предложил
Twist4
FL Team
FL Team
Сообщения: 165
Зарегистрирован: 13 окт 2009, 19:40

Re: Отправляем уведомления с помощью БД

Сообщение Twist4 »

Помогите) мне при:
get_url($api->sendNotification(array($r[$uid]), $text));
Выдает ошибку:
Parse error: syntax error, unexpected T_STRING

в чем проблема и как ее решить?
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Отправляем уведомления с помощью БД

Сообщение bodnar »

:? все зависит от того что вы пытались сделать, но в общем виде проблема в том что
1 - отправляется пустая строка и 2 - список номеров которым вы пытаетесь отправить содержит текстовую строку которую вы хотели отпрвить

get_url($api->sendNotification($r[$uid]), $text);
Twist4
FL Team
FL Team
Сообщения: 165
Зарегистрирован: 13 окт 2009, 19:40

Re: Отправляем уведомления с помощью БД

Сообщение Twist4 »

строка не пустая...до этого идет
$text = 'ололоолололоо';
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Отправляем уведомления с помощью БД

Сообщение bodnar »

да да я не прав :D

кусок кода больше покажите
Mustafin.M
Сообщения: 166
Зарегистрирован: 09 май 2010, 08:49

Re: Отправляем уведомления с помощью БД

Сообщение Mustafin.M »

Спасибо за урок! Просто, понятно и работает!
Ответить