Перейти к содержимому



Купить ссылку здесь
Фотография
- - - - -

[PHP] Прием заявок в закрытую группу

Форум ZiSMO.biz
15
Сообщений в теме: 15

OFFLINE Отправлено

nulled
группа пользователя
  • Онлайн:1д 11ч 27м
8

PHP скрипт для приема заявок в закрытую группу, за раз принимает 100 человек.

<?

/*************************/
/*** POWERED BY NULLED ***/
/*************************/

$token = '';
$group = '';


$requests = api('groups.getRequests', [ 'group_id' => $group, 'count' => 100, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
	api('groups.approveRequest', [ 'group_id' => $group, 'user_id' => $item, 'access_token' => $token ]);
}

function api($method, $params = array()){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/' . $method . '?' . http_build_query($params));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	$src = curl_exec($ch);
	curl_close($ch);
	return json_decode($src);
}

?>




    • 3
  • Наверх
  • Ответить

ONLINE Отправлено

L1ke
группа пользователя
  • Онлайн:177д 14ч 46м
910

За раз 100 заявок? А сам-то тестировал? При 30-40 заявок скрипт будет сыпаться с 503, разве что если на сервере время смерти после запроса выкрутить на максимум.

К тому же, каждая 3-4 заявка в твоём коде будет пропускаться, потому что ВК разрешает лишь 3 запроса в секунду, то есть тут usleep с 300 уместен(либо просто slepp(0.3)). И CURL необязательно использовать, тут не надо ничего особого передавать, можно и file_get_contents, дабы облегчить код.

 

А вообще код хорош, красивый. Лови лайк.


Сообщение отредактировал L1ke: 01 06 2016 - 23:56

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Вячеслав Норинов
группа пользователя
  • Онлайн:45д 17ч 59м
466

Спасибо!


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

mozgozavr1337
группа пользователя
  • Онлайн:99д 7ч 21м
756

За раз 100 заявок? А сам-то тестировал? При 30-40 заявок скрипт будет сыпаться с 503, разве что если на сервере время смерти после запроса выкрутить на максимум.

К тому же, каждая 3-4 заявка в твоём коде будет пропускаться, потому что ВК разрешает лишь 3 запроса в секунду, то есть тут usleep с 300 уместен(либо просто slepp(0.3)). И CURL необязательно использовать, тут не надо ничего особого передавать, можно и file_get_contents, дабы облегчить код.

 

А вообще код хорош, красивый.

Слегка обидели маленького багера, а код и правда неплохой.


    • 0
  • Наверх
  • Ответить

ONLINE Отправлено

makag
группа пользователя
  • Онлайн:231д 13ч 34м
1 547

так по идее можно и высланные инвайты отменять? 

 

я в этом не разбираюсь, попробовал накидать "по аналогии", но не завелось

<?



$token = 'b4bd8c72_токен_d8940688aedd04155754a9';
$group = '10_айди-группы_98';


$requests = api('groups.getInvitedUsers', [ 'group_id' => $group, 'count' => 1, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
api('groups.removeUser', [ 'group_id' => $group, 'user_id' => $item, 'access_token' => $token ]);
}

function api($method, $params = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/'. $method . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$src = curl_exec($ch);
curl_close($ch);
return json_decode($src);
}

?> 

Сообщение отредактировал makag: 01 06 2016 - 21:17

1) 10к поинтов и премиум на месяц >>> 898828

2) Пополнение beget со скидкой 15-30%

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

crytilka
группа пользователя
  • Онлайн:21д 10ч 36м
138
Спасибо
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Grad
группа пользователя
  • Онлайн:23д 6ч 45м
62

не понимаю в этом ровным счетом ничего )))

если кому-то полезно будет - то спс  (clap)


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

nulled
группа пользователя
  • Онлайн:1д 11ч 27м
8

За раз 100 заявок? А сам-то тестировал? При 30-40 заявок скрипт будет сыпаться с 503, разве что если на сервере время смерти после запроса выкрутить на максимум.

К тому же, каждая 3-4 заявка в твоём коде будет пропускаться, потому что ВК разрешает лишь 3 запроса в секунду, то есть тут usleep с 300 уместен(либо просто slepp(0.3)). И CURL необязательно использовать, тут не надо ничего особого передавать, можно и file_get_contents, дабы облегчить код.

 

А вообще код хорош, красивый. Лови лайк.

Ну, для теста у меня нету группы с большим количеством заявок, так что не было возможности в таких масштабах протестировать, но ты прав, это фиксится простым слипом в цикле, а 503 ошибка так же исправляется одной строкой set_time_limit(0); в начале скрипта:

<?
set_time_limit(0);

/*************************/
/*** POWERED BY NULLED ***/
/*************************/

$token = '';
$group = '';


$requests = api('groups.getRequests', [ 'group_id' => $group, 'count' => 100, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
	api('groups.approveRequest', [ 'group_id' => $group, 'user_id' => $item, 'access_token' => $token ]);
	sleep(0.3);
}

function api($method, $params = array()){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/' . $method . '?' . http_build_query($params));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	$src = curl_exec($ch);
	curl_close($ch);
	return json_decode($src);
}

?>

Сообщение отредактировал nulled: 02 06 2016 - 04:34

    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

nulled
группа пользователя
  • Онлайн:1д 11ч 27м
8

 

так по идее можно и высланные инвайты отменять? 

 

я в этом не разбираюсь, попробовал накидать "по аналогии", но не завелось

<?



$token = 'b4bd8c72_токен_d8940688aedd04155754a9';
$group = '10_айди-группы_98';


$requests = api('groups.getInvitedUsers', [ 'group_id' => $group, 'count' => 1, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
api('groups.removeUser', [ 'group_id' => $group, 'user_id' => $item, 'access_token' => $token ]);
}

function api($method, $params = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/'. $method . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$src = curl_exec($ch);
curl_close($ch);
return json_decode($src);
}

?> 

Ты был очень близок )

<?

set_time_limit(0);

$token = '';
$group = '';

$requests = api('groups.getInvitedUsers', [ 'group_id' => $group, 'count' => 1, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
	api('groups.removeUser', [ 'group_id' => $group, 'user_id' => $item->id, 'access_token' => $token ]);
	sleep(0.3);
}

function api($method, $params = array()){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/'. $method . '?' . http_build_query($params));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	$src = curl_exec($ch);
	curl_close($ch);
	return json_decode($src);
}

?> 

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Sergei1994
группа пользователя
  • Онлайн:198д 9ч 22м
1 330

Спасибо, полезно будет 


adef1872c61b.jpg14.12     avtolaykii_8989494_27386865.png31.12
 
   d216a5b955ad.png                         nakrutkapr_4806752_27386851.png    
    • 0
  • Наверх
  • Ответить

ONLINE Отправлено

L1ke
группа пользователя
  • Онлайн:177д 14ч 46м
910

 

Ну, для теста у меня нету группы с большим количеством заявок, так что не было возможности в таких масштабах протестировать, но ты прав, это фиксится простым слипом в цикле, а 503 ошибка так же исправляется одной строкой set_time_limit(0); в начале скрипта:

<?
set_time_limit(0);

/*************************/
/*** POWERED BY NULLED ***/
/*************************/

$token = '';
$group = '';


$requests = api('groups.getRequests', [ 'group_id' => $group, 'count' => 100, 'access_token' => $token, 'v' => '5.52' ]);

foreach($requests->response->items as $item){
	api('groups.approveRequest', [ 'group_id' => $group, 'user_id' => $item, 'access_token' => $token ]);
	sleep(0.3);
}

function api($method, $params = array()){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/' . $method . '?' . http_build_query($params));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	$src = curl_exec($ch);
	curl_close($ch);
	return json_decode($src);
}

?>

 

Хм, у меня с set_time_limit тоже падало, к тому же обработка слегка долгая. Я когда парсер писал использовал excute, там до 25 запросов можно обрабатывать за раз, таким образом кол-во сообщений с парсера с 100 до 2 500 увеличил.


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

nulled
группа пользователя
  • Онлайн:1д 11ч 27м
8

Хм, у меня с set_time_limit тоже падало, к тому же обработка слегка долгая. Я когда парсер писал использовал excute, там до 25 запросов можно обрабатывать за раз, таким образом кол-во сообщений с парсера с 100 до 2 500 увеличил.

а хостинг не бесплатный случаем? на бесплатном может быть сейфмод включен, из-за чего сет тайм лимит 0 не будет работать


    • 0
  • Наверх
  • Ответить

ONLINE Отправлено

L1ke
группа пользователя
  • Онлайн:177д 14ч 46м
910

а хостинг не бесплатный случаем? на бесплатном может быть сейфмод включен, из-за чего сет тайм лимит 0 не будет работать


Локалка, winginx.
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

starter80
группа пользователя
  • Онлайн:309д 12ч 21м
1 430

Что то у меня не работает автодобавлялка эта  :(

В группу только цифры вставлять же?


Сервис коротких ссылок banner468x60.jpg($)  Возможность заработать любых ссылках!

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Federal1k
группа пользователя
  • Онлайн:44д 7ч 20м
87

спасибо


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

MarsEVG
группа пользователя
  • Онлайн:22д 23ч 30м
47
Огромное спасибо
    • 0
  • Наверх
  • Ответить



Напишите свое сообщение