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



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

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

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

OFFLINE Отправлено

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

    Новичок

  • 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 481
  • Друзей:37
  • Поинты: 3 606
  • Предупреждений: 0
  • Онлайн:134д 22ч 33м
710

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

Спасибо!


Мошенничество. Заблокирован

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

OFFLINE Отправлено

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

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

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

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

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

 

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

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


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

OFFLINE Отправлено

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

    В адалте денег нет. Выпьем с горя ?

  • Cообщений: 3 387
  • Друзей:6
  • Поинты: 151
  • Предупреждений: 0
  • Онлайн:112д 5ч 5м
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

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

OFFLINE Отправлено

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

    Статус

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

OFFLINE Отправлено

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

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

  • Cообщений: 2 042
  • Поинты: 68
  • Предупреждений: 11
  • Онлайн:18д 1ч 44м
45

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

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


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

OFFLINE Отправлено

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

    Новичок

  • 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
группа пользователя

    Новичок

  • 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 144
  • Друзей:1164
  • Поинты: 2 077
  • Предупреждений: 0
  • Онлайн:169д 9ч 18м
1 164

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


85e05713dc23.gif2,03 62999aad7930.gif6,04

0c593ebf9caf.gif18,3 389ec147f5c0.gif31,2
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

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

    ~

  • Cообщений: 7 481
  • Друзей:37
  • Поинты: 3 606
  • Предупреждений: 0
  • Онлайн:134д 22ч 33м
710

 

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

    Новичок

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

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

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


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

OFFLINE Отправлено

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

    ~

  • Cообщений: 7 481
  • Друзей:37
  • Поинты: 3 606
  • Предупреждений: 0
  • Онлайн:134д 22ч 33м
710

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


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

OFFLINE Отправлено

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

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

  • Cообщений: 9 766
  • Поинты: 416
  • Предупреждений: 20
  • Онлайн:184д 7ч 20м
899

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

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


Самая дешёвая капча capcha.gif + Возможность заработать на вводе капчи ($) 
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

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

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

  • Cообщений: 3 081
  • Поинты: 1 922
  • Предупреждений: 0
  • Онлайн:40д 16ч 27м
78

спасибо


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

OFFLINE Отправлено

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

    ...

  • Cообщений: 5 028
  • Друзей:26
  • Поинты: 871
  • Предупреждений: 30
  • Онлайн:19д 19ч 42м
44
Огромное спасибо
    • 0
  • Наверх
  • Ответить



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