Страница 1 из 3

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

Добавлено: 07 мар 2010, 19:18
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]), 'Текст сообщения'));} ?>
Как мы видим, уведомления отправляются в цикле до тех пор, пока записи не закончатся.

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

Добавлено: 07 мар 2010, 21:20
Александр
Уведомления отправляются только первым 100 id?
В методе sendNotification есть ограничение на количество id в одном запросе.

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

Добавлено: 07 мар 2010, 21:35
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), 'Текст сообщения'));

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

Добавлено: 08 мар 2010, 19:50
Серёга
Долго всем рассылать будет, но всё равно спасибо)

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

Добавлено: 12 апр 2010, 01:32
Sudba
Долго не долго, а больше готовых вариантов никто не предложил

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

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

в чем проблема и как ее решить?

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

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

get_url($api->sendNotification($r[$uid]), $text);

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

Добавлено: 15 апр 2010, 19:03
Twist4
строка не пустая...до этого идет
$text = 'ололоолололоо';

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

Добавлено: 15 апр 2010, 19:32
bodnar
да да я не прав :D

кусок кода больше покажите

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

Добавлено: 25 май 2010, 17:16
Mustafin.M
Спасибо за урок! Просто, понятно и работает!