• Как создать виджет сообщества VK?

    @mirapi Автор вопроса
    Сергей Соколов, вот я балбес. Спасибо )
  • Как создать виджет сообщества VK?

    @mirapi Автор вопроса
    Сергей Соколов, решил построить таблицу без иконок, просто текст и значение, как в примере. Сделал код:
    <?
    
    	$data = array(
        'type' => 'list',
        'access_token' => 'ea9cdcc870dbbb4a8100829f48c9b3e3565bfae0e6aa55b3ec17101b34b54bb6119bfc65edd8f81093c92',
        'v' => '5.74',
        'code' => '
            return { 
        "title": "My Table", 
        "title_url": "https://vk.com/", 
        "title_counter": 31, 
        "more": "Посмотреть все результаты", 
        "more_url": "https://vk.com/", 
        "head": [{ 
            "text": "Название первой колонки" 
        }, { 
            "text": "Название второй колонки", 
            "align": "center" 
        }], 
        "body": [ 
            [{ 
                "text": "Это первая ячейка первой строки"
            }, 
            { 
                "text": "Это вторая ячейка первой строки", 
                "url": "https://vk.com/wall-12345_542321" 
            }], 
            [{ 
                "text": "Это первая ячейка второй строки"
            }, 
            { 
                "text": "Это вторая ячейка второй строки", 
                "url": "https://vk.com/wall-12345_54321" 
            } 
            ] 
        ] 
    };'
    );
    
    	
    	$result = file_get_contents('https://api.vk.com/method/appWidgets.update?', false, stream_context_create(array(
            'http' => array(
                'method'  => 'POST',
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => http_build_query($data)
            )
        )));
    	
    	echo $result;


    Но теперь выходит ошибка 100: One of the parameters specified was missing or invalid: rows is empty.
    Строк пустых я не обнаружил, но код видит. При этом, если вставить код в само приложение, которое прислали выше - все отображается.
    5af9791a76fc1649902428.png
  • Как создать виджет сообщества VK?

    @mirapi Автор вопроса
    Сергей Соколов, с этим разобрался. Ошибка была связана с тем, что в этих виджетах нельзя передавать ссылки на сторонние сайты, по этому и не грузилось. Очень странно что прмиер именно с такими ссылками указан в документации.
    Но сейчас никак не могу разобраться с типом "Table". Заменил все ссылки на VK, но ошибка идет к изображениям. То, что в примере, опять же не отображает.

    return { 
        "title": "My Table", 
        "title_url": "https://vk.com", 
        "title_counter": 31, 
        "more": "Посмотреть все результаты", 
        "more_url": "https://vk.com", 
        "head": [{ 
            "text": "Название первой колонки" 
        }, { 
            "text": "Название второй колонки", 
            "align": "center" 
        }], 
        "body": [ 
            [{ 
                "text": "Это первая ячейка первой строки", 
                "icon_id": "3484735_23434324" 
            }, 
            { 
                "text": "Это вторая ячейка первой строки", 
                "url": "https://vk.com/" 
            }], 
            [{ 
                "text": "Это первая ячейка второй строки", 
                "icon_id": "3484735_23434324" 
            }, 
            { 
                "text": "Это вторая ячейка второй строки", 
                "url": "https://vk.com/" 
            } 
            ] 
        ] 
    };


    Как именно можно загрузить эту иконку?
  • Как создать виджет сообщества VK?

    @mirapi Автор вопроса
    Сейчас возникла проблема с php-скриптом, который бы и обновлял виджет. Я не могу правильно выполнить запрос appWidgets.update. Не совсем понимаю как именно передавать параметр "code". Пробовал и ввиде массива, но выходит ошибка что это не должен быть массив.

    Подскажите, как правильно? Делаю вот такой запрос:
    $code = '"title": "Цитата дня", 
    	"title_url": "https://link", 
    	"title_counter": 42, 
    	"more": "Читать все цитаты", 
    	"more_url": "https://link2", 
    	"text": "«Нам нужно гордиться»", 
    	"descr": "Дэвид Кэмерон о победе сторонников выхода страны\n из Евросоюза на референдуме", ';
    	
    	
    	$request_params = array( 
    	'type' => 'text', 
    	'code' => $code,
    	'v' => '5.0',
    	'access_token' => 'ea9cdcc870dbbb4a8100829f48c9b3e3565bfae0e6aa55b3ec17101b34b54bb6119bfc65edd8f81093c92'
    	);
    
    	$get_params = http_build_query($request_params); 
    	$update = json_decode(file_get_contents('https://api.vk.com/method/appWidgets.update?'. $get_params));