Ответы пользователя по тегу ВКонтакте
  • В группу перестали приходить уведомления о новых сообщениях (Callback API), другие события работают. Что делать?

    rusld
    @rusld
    API, Blockchain, Go
    1. Если приходит confirmation проверьте в настройках в группе подтвержден ли callback-сервер
    2. Посмотрите отмечен ли данный чекбокс в настройках сервера
    3. Попробуйте обновить ключ доступа сообщества (access_token)

    На запросы сервер должен отвечать "ок" если они по каким то причинам не отправляются ему он может приостановить высылку событий в группе.
    Ответ написан
    Комментировать
  • Почему Client API ВК не дает прав доступа для методов с ключом доступа сообщества?

    rusld
    @rusld Автор вопроса
    API, Blockchain, Go
    Вообщем решение такое нашел. И как бы даже более логично чем мой первый план по организации запроса к апи ВК. Я изначально предполагал, что после разрешения прав доступа на группу администратором, токен доступа от имени группы возвращается и сохраняется где нибудь в Client API, и таким образом при вызове функций его требующих, подставляется автоматически. Но мои ванильные мечты потерпели фиаско. После получения ключа его нужно пустить в дело, путем передачи на сервер, с которого запущено приложение, а там уже вызывать метода VK API:
    Client (JS):
    VK.init(function() {
      $('#item_addserver').on('click', function() {
        // Запрашиваем права доступа
        accessGroup();
      });
    });
    
    function accessGroup() {
      VK.callMethod("showGroupSettingsBox", 262144);
      VK.addCallback('onGroupSettingsChanged', function(settings, grp_token){ 
    		addServer(grp_token); 
    	});
    
      VK.addCallback('onGroupSettingsCancel', function(){ 
        alert("Отказ в доступе"); 
      });
    }
    
    // Добавление сервера
    function addServer(gtoken) {
    	$.get('https://mymo.info/api.php', 
    		{
    			"viewer_id": the_viewer_id,
    			"secret": the_secret,
    			"method": "add_server",
    			"group_access_token": gtoken,
    			"group_id": the_group_id
    		},
    		function(data) {
    			alert('addserver: ' + data);
    		});
    }


    Сервер (PHP):

    // ... дополнительная обработка подключений к своему API
    /* создает новый сервер */
    	function add_server() {
    		//print_r($_GET);
    		$access_token = clearStr($_GET['group_access_token']);
    		$group_id = clearInt($_GET['group_id']);
    		
    		//print "$group_id\n$access_token";
    		
    		$api_params = array(
    			"group_id" => $group_id,
    			"access_token" => $access_token,
    			"v" => VK_API_VERSION
    		);
    		
    		$get_query_string = http_build_query($api_params);
    		$api_request = 'https://api.vk.com/method/groups.getCallbackServers?'.$get_query_string;
    		
    		//print $get_query_string;
    		
    		$api_result = file_get_contents($api_request);
    		
    		print $api_result;
    	}


    Вот теперь работает :)
    5c0944e3cf23a677455306.png
    Ответ написан
    Комментировать