makag
@makag

Парсинг json — отменить приглашение в группу?

Собственно цель: отменять высланные приглашения в группу вКонтакте.
Методом groups.getInvitedUsers пробую получать список высланных приглашений, со смещением offset = '5', чтобы захватить более старые инвайты, и count = '1' выдачей одного результата на запрос.

Ответ сервера на запрос groups.getInvitedUsers по идее нужно парсить и отправлять запрос методом groups.removeUser с полученным айди пользователя.

Но так, как я рак - подозреваю, что парсинг я делаю неправильно.

Собственно мой быдло-код:

<?
$token = 'e9ac7efaaf876f76728475fdf3061d43dd7f1091d47a6804b5';
$group_id = '112345678';
$offset = '5';
$count = '1';

$getlist = curl('https://api.vk.com/method/groups.getInvitedUsers?group_id='.$group_id.'&offset='.$offset.'&count='.$count.'&access_token='.$token);  

$json2 = json_decode($getlist, true);
$resultid = $json2['items']['id'];

$deluser = curl('https://api.vk.com/method/groups.removeUser?group_id='.$group_id.'&user_id='.$resultid.'&access_token='.$token); 

function curl($url) {
		$ch = curl_init($url);
		curl_setopt ($ch,CURLOPT_RETURNTRANSFER,true);
		curl_setopt ($ch,CURLOPT_SSL_VERIFYHOST,false);
		curl_setopt ($ch,CURLOPT_SSL_VERIFYPEER,false);
		$response = curl_exec($ch);
		curl_close ($ch);
		return $response;
}
?>


На запрос groups.getInvitedUsers вк отдаёт данные в таком формате:
response: {
count: 535,
items: [{
id: 123456700,
first_name: 'Имя',
last_name: 'Фамилия'
}]
}


И, как я подозреваю, затык просходит на этапе разбора этого ответа, конструкцией
$json2 = json_decode($getlist, true);
$resultid = $json2['items']['id'];


Подскажите, куда копать ?
Спасибо заранее за наводящие коменты и ответы!
  • Вопрос задан
  • 415 просмотров
Решения вопроса 2
$resultid = $json2['response']['items'][0]['id'];
Блин, неужели это не очевидно?
Ответ написан
makag
@makag Автор вопроса
Работающий код:

<?php
	
$token = 'e9ac743dd7f1091d47a6804b5';   /// токен руководителя сообщества
$group = '12345678';  // айди группы
$offsets = '5'; // смещение вниз по списку инвайтов
$counts = '1'; // выдавать в результатах один айди
{
$getid = curl('https://api.vk.com/method/groups.getInvitedUsers?group_id='.$group.'&offset='.$offsets.'&count='.$counts.'&access_token='.$token);

$jsons = json_decode($getid, true);
$idmid = $jsons['response']['1']['uid'];


$delete = curl('https://api.vk.com/method/groups.removeUser?group_id='.$group.'&user_id='.$idmid.'&access_token='.$token);
		


}

function curl( $url )
{$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $ch );
curl_close( $ch );
return $response;
}?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bikuka
Вот рабочий скрипт на javascript:
javascript:setInterval("var row=document.querySelector('#group_u_rows_invites .group_l_row'); if(row){var btn=row.querySelector('.group_u_action');if(btn)btn.click();row.parentElement.removeChild(row);} document.querySelector('#group_edit_more_admins').click()", 800);


Взял отсюда - - www.bubasik.com/kak-v-vkontakte-otmenit-vse-prigla...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы