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

Отправка уведомлений IFRAME

Добавлено: 30 сен 2010, 11:01
azzzi
Делал под свою игру поэтому урок несколько специфичен, по общий смысл понятен.

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

//Я отправляю уведомление 7-ми лучшим игрокам.//В statistika.txt у меня через пробел: ИД ОЧКИ. нужно вытащить только ИД.<?$api_id="ид приложениия";$api_key="ключ приложения"; $userids = "";   $file_name='topgame/statistika.txt'; //Директория с пользователями   $fcontens=file($file_name);   if ($fcontens) {   $pieces1 = explode(" ", $fcontens[0]);  if ($pieces1[0]) { $userids = $pieces1[0]; }  $pieces2 = explode(" ", $fcontens[1]);  if ($pieces2[0]) { $userids = $userids.",".$pieces2[0]; }  $pieces3 = explode(" ", $fcontens[2]);  if ($pieces3[0]) { $userids = $userids.",".$pieces3[0]; }  $pieces4 = explode(" ", $fcontens[3]);  if ($pieces4[0]) { $userids = $userids.",".$pieces4[0]; }  $pieces5 = explode(" ", $fcontens[4]);  if ($pieces5[0]) { $userids = $userids.",".$pieces5[0]; }  $pieces6 = explode(" ", $fcontens[5]);  if ($pieces6[0]) { $userids = $userids.",".$pieces6[0]; }  $pieces7 = explode(" ", $fcontens[6]);  if ($pieces7[0]) { $userids = $userids.",".$pieces7[0]; } //для теста:  echo "отравляем уведомление на:".$userids; //теперь в $userids есть 7 ид игроков  } $mesage="Приветик! Ты один из претендентов на супер приз! Включайся в борьбу :)";      $rand = rand();    $timestamp = time()+300;     $sig = md5("api_id=".$api_id."message=".$mesage."method=secure.sendNotificationrandom=".$rand."timestamp=".$timestamp."uids=".$userids."v=2.0".$api_key);    $postvars="api_id=".$api_id."&message=".$mesage."&method=secure.sendNotification&random=".$rand."&timestamp=".$timestamp."&uids=".$userids."&v=2.0&sig=".$sig;      $chp = curl_init('http://api.vkontakte.ru/api.php');    curl_setopt($chp, CURLOPT_HEADER,0);    curl_setopt($chp, CURLOPT_RETURNTRANSFER ,1);    curl_setopt($chp, CURLOPT_POST, 1);    curl_setopt($chp, CURLOPT_POSTFIELDS,  $postvars);    $res = curl_exec($chp);    curl_close($chp);    if ($res) { //для тестаecho "<br>Отправилось уведомления до: ".$res; }?>
Если вам надо отправить всем игрокам из вашей базы, то делаем в $userids по 100 ид, больше нельзя. и отправляем циклом.

Re: Отправка уведомлений IFRAME

Добавлено: 28 окт 2010, 19:12
ybiza
Если не трудно подскажите как зациклить по 100.

Re: Отправка уведомлений IFRAME

Добавлено: 28 окт 2010, 19:40
butuz
ybiza писал(а):Если не трудно подскажите как зациклить по 100.
для всех айди из файла:

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

 $userids = "";$file_name = 'topgame/statistika.txt'; //Директория с пользователями$fcontens = file($file_name);foreach($fcontens as $as){  $as = trim($as);  $pieces = explode(" ", $as);  $userids .= ",".$pieces[0];} 

Re: Отправка уведомлений IFRAME

Добавлено: 01 ноя 2010, 19:46
azzzi
кстати наверное есть ограничение на использование method=secure.sendNotificationrandom в секунду...это я к тому что если надо отослать нескольким тысячам уведомление в цикле...надо уточнить :)

Re: Отправка уведомлений IFRAME

Добавлено: 01 ноя 2010, 21:21
bodnar
вообще ограничение 3 запроса в секунду для одного пользователя

Re: Отправка уведомлений IFRAME

Добавлено: 22 ноя 2010, 01:12
Pusik
народ подскажите в какой кодировке слать уведомления? слал в утв , утф бум, и анси, в разных браузерах приходят крякозябры

Re: Отправка уведомлений IFRAME

Добавлено: 22 ноя 2010, 02:57
ReginFell
Подскажите что изменить что бы uid получать с базы данных?

Re: Отправка уведомлений IFRAME

Добавлено: 22 ноя 2010, 06:42
Александр
Pusik
UTF-8 без BOM.

ReginFell
код строк 9-25.
На что изменить - зависит от твоей базы http://flapps.ru/forum/topic922.html

Re: Отправка уведомлений IFRAME

Добавлено: 26 дек 2010, 04:08
BIOS
У меня не выходит, ошибку пишет

Отправилось уведомления до: 113 Invalid user id api_id

Re: Отправка уведомлений IFRAME

Добавлено: 26 дек 2010, 14:39
Александр
BIOS
Видимо какой-то user_id в базе указан не правильно.