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



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

[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 496
  • Друзей:28
  • Поинты: 1 342
  • Предупреждений: 0
  • Онлайн:141д 6ч 48м
746

За раз 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
  • Поинты: 3
  • Предупреждений: 50
466

Спасибо!


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

OFFLINE Отправлено

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

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

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

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

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

 

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

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


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

OFFLINE Отправлено

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

    $10 за фото твоего ПК goo.gl/r6lJpF

  • Cообщений: 4 024
  • Друзей:8
  • Поинты: 459
  • Предупреждений: 0
  • Онлайн:133д 1ч 23м
683

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

 

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

<?



$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
  • Поинты: 43
  • Предупреждений: 50
138
Спасибо
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

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

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

  • Cообщений: 2 052
  • Поинты: 38
  • Предупреждений: 11
  • Онлайн:18д 22ч 2м
46

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

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

    My-vk.ru самый лучший магазин Vk.com

  • Cообщений: 35 941
  • Друзей:1221
  • Поинты: 3 397
  • Предупреждений: 0
  • Онлайн:176д 23ч 37м
1 252

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


image.gif2,05 78058a88c8_1939204_25787227.gif6,06

24f6d82a261a.gif20.5 389ec147f5c0.gif31.4
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

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

    ~

  • Cообщений: 7 496
  • Друзей:28
  • Поинты: 1 342
  • Предупреждений: 0
  • Онлайн:141д 6ч 48м
746

 

Ну, для теста у меня нету группы с большим количеством заявок, так что не было возможности в таких масштабах протестировать, но ты прав, это фиксится простым слипом в цикле, а 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 496
  • Друзей:28
  • Поинты: 1 342
  • Предупреждений: 0
  • Онлайн:141д 6ч 48м
746

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


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

OFFLINE Отправлено

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

    Заработок для всех https://goo.gl/qb8pvb

  • Cообщений: 10 464
  • Поинты: 1 422
  • Предупреждений: 20
  • Онлайн:205д 20ч 55м
1 002

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

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


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

OFFLINE Отправлено

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

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

  • Cообщений: 3 195
  • Поинты: 2 096
  • Предупреждений: 0
  • Онлайн:42д 3ч 40м
86

спасибо


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

OFFLINE Отправлено

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

    Уровень 3

  • Cообщений: 5 106
  • Друзей:27
  • Поинты: 543
  • Предупреждений: 30
  • Онлайн:21д 5ч 24м
47
Огромное спасибо
    • 0
  • Наверх
  • Ответить



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