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



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

[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 517
  • Друзей:28
  • Поинты: 245
  • Предупреждений: 0
  • Онлайн:146д 5ч 26м
792

За раз 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
755

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

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

 

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

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


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

OFFLINE Отправлено

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

    makag.ru

  • Cообщений: 4 590
  • Друзей:9
  • Поинты: 882
  • Предупреждений: 0
  • Онлайн:156д 10ч 43м
872

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

 

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

<?



$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

4a7cb20e94b10a7690070ecb42078512.gif

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

OFFLINE Отправлено

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

    Статус

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

OFFLINE Отправлено

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

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

  • Cообщений: 2 092
  • Поинты: 12
  • Предупреждений: 11
  • Онлайн:20д 4ч 58м
48

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

если кому-то полезно будет - то спс  (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
группа пользователя

    Магазин аккаунтов соц.сетей kupikupon.biz

  • Cообщений: 36 516
  • Друзей:1263
  • Поинты: 3 368
  • Предупреждений: 0
  • Онлайн:185д 2ч 58м
1 283

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


image.gif2,06                                21ede01a7fe8.png  6,06

\KupiKupon4_5567403_26594708.gif20.7                          389ec147f5c0.gif31.6

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

OFFLINE Отправлено

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

    ~

  • Cообщений: 7 517
  • Друзей:28
  • Поинты: 245
  • Предупреждений: 0
  • Онлайн:146д 5ч 26м
792

 

Ну, для теста у меня нету группы с большим количеством заявок, так что не было возможности в таких масштабах протестировать, но ты прав, это фиксится простым слипом в цикле, а 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 517
  • Друзей:28
  • Поинты: 245
  • Предупреждений: 0
  • Онлайн:146д 5ч 26м
792

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


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

ONLINE Отправлено

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

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

  • Cообщений: 11 100
  • Друзей:196
  • Поинты: 6 981
  • Предупреждений: 10
  • Онлайн:234д 18ч 2м
1 107

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

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


Ключи HideMy, VpnMonster 3b29e24665de.gif Steam игры — Программы, Prоxy и VPN
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

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

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

  • Cообщений: 3 204
  • Поинты: 20
  • Предупреждений: 0
  • Онлайн:42д 5ч 3м
86

спасибо


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

OFFLINE Отправлено

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

    Уровень 3

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



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