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



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

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

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

OFFLINE Отправлено

nulled
группа пользователя

    Уровень 1

  • Cообщений: 28
  • Поинты: 11
  • Предупреждений: 0
  • Онлайн: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
  • Наверх
  • Ответить

OFFLINE Отправлено

L1ke
группа пользователя

    Думай позитивно

  • Cообщений: 7 541
  • Друзей:29
  • Поинты: 181
  • Предупреждений: 0
  • Онлайн:152д 5ч 19м
840

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

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

 

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


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

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

OFFLINE Отправлено

Вячеслав Норинов
группа пользователя

    Мошенник

  • Cообщений: 10 586
  • Друзей:556
  • Поинты: 4
  • Предупреждений: 50
466

Спасибо!


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

OFFLINE Отправлено

mozgozavr1337
группа пользователя

    Временно снят

  • Cообщений: 10 626
  • Друзей:231
  • Поинты: 24
  • Предупреждений: 50
756

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

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

 

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

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


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

OFFLINE Отправлено

makag
группа пользователя

    Пользователь неадекватен. Не пишите ему.

  • Cообщений: 5 015
  • Друзей:9
  • Поинты: 550
  • Предупреждений: 0
  • Онлайн:179д 6ч 58м
1 034

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

 

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

<?



$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

givesms.gif

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

OFFLINE Отправлено

crytilka
группа пользователя

    Статус

  • Cообщений: 2 238
  • Друзей:110
  • Поинты: 47
  • Предупреждений: 50
138
Спасибо
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Grad
группа пользователя

    За белое продвижение :)

  • Cообщений: 2 171
  • Поинты: 318
  • Предупреждений: 11
  • Онлайн:22д 14ч 59м
56

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

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


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

OFFLINE Отправлено

nulled
группа пользователя

    Уровень 1

  • Cообщений: 28
  • Поинты: 11
  • Предупреждений: 0
  • Онлайн: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

  • Cообщений: 28
  • Поинты: 11
  • Предупреждений: 0
  • Онлайн: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
группа пользователя

    Свободно место в статусе

  • Cообщений: 36 996
  • Друзей:1279
  • Поинты: 3 763
  • Предупреждений: 0
  • Онлайн:189д 17ч 52м
1 297

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


36fad105e8dc.gif                                                          21ede01a7fe8.png  24,08
 
8130c5c44bb9.gif 24.8                                   de9bef911a_7777598_26726106.gif
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

L1ke
группа пользователя

    Думай позитивно

  • Cообщений: 7 541
  • Друзей:29
  • Поинты: 181
  • Предупреждений: 0
  • Онлайн:152д 5ч 19м
840

 

Ну, для теста у меня нету группы с большим количеством заявок, так что не было возможности в таких масштабах протестировать, но ты прав, это фиксится простым слипом в цикле, а 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

  • Cообщений: 28
  • Поинты: 11
  • Предупреждений: 0
  • Онлайн:1д 11ч 27м
8

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

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


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

OFFLINE Отправлено

L1ke
группа пользователя

    Думай позитивно

  • Cообщений: 7 541
  • Друзей:29
  • Поинты: 181
  • Предупреждений: 0
  • Онлайн:152д 5ч 19м
840

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


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

OFFLINE Отправлено

starter80
группа пользователя

    Накрутка Instagram https://vk.cc/6zI6RB

  • Cообщений: 11 791
  • Друзей:209
  • Поинты: 10 126
  • Предупреждений: 20
  • Онлайн:260д 22ч 37м
1 206

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

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


Индивидуальные прокси proxy.gif + Обновление списка прокcи вручную 
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Federal1k
группа пользователя

    Официальный представитель seriousdogs.ru

  • Cообщений: 3 228
  • Поинты: 35
  • Предупреждений: 0
  • Онлайн:43д 5ч 55м
87

спасибо


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

OFFLINE Отправлено

MarsEVG
группа пользователя

    Уровень 3

  • Cообщений: 5 122
  • Друзей:29
  • Поинты: 24
  • Предупреждений: 90
47
Огромное спасибо
    • 0
  • Наверх
  • Ответить



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