Проверка групп ВК на возможность комментить

  • Автор темы Автор темы S16er1um
  • Дата начала Дата начала

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Реакции
241
Баллы
43
Всем привет. Поставил задачу сделать через АПИ проверку на то, можно ли комментить на стене в группе.
Задолбался искать этот метод! Тут https://vk.com/dev/groups его не нашел.

Так же хотел сделать парсер групп по нужному слову не через WEB морду, а через API.
Вот нашел метод https://vk.com/dev/groups.search , но он без секретного ключа не работает.

Создал своё приложение (просто создал стэнд алон приложуху, в плане чисто название для неё написал :) ) у меня есть ID приложения и "Защищенный ключ". как мне получить секретный ключ теперь? какие дальнейшие действия? может кто поделится последовательностью запросов? и можно ли вообще как-то без секретного ключа обойтись? (но не через ВЭБ)
 
Не помню где точно описывается, но в своих шаблонах использую такой запрос

https://oauth.vk.com/oauth/authorize?client_id=111индификатор приложения111&scope=notify,friends,photos,audio,video,docs,notes,pages,status,groups,messages&redirect_url=https://api.vk.com/blank.html&display=page&v=5.30&response_type=token

Вводите логин и пароль, авторизуетесь. После этого из адресной строки паршу токен.
 
Код:
Развернуть Свернуть Копировать
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>VK | Login</title>
      <link rel="stylesheet" type="text/css" href="https://vk.com/css/al/fonts_cnt.css?2696088870" />
  <link rel="stylesheet" type="text/css" href="https://vk.com/css/al/common.css?3926032117" />
    <link type="text/css" rel="stylesheet" href="https://vk.com/css/api/oauth_popup.css?417312148"></link>
    <script type="text/javascript" language="javascript" src="https://vk.com/js/api/common_light.js?2102079137"></script>
    <script type="text/javascript" language="javascript">// <![CDATA[
      function allow(button) {
        if (isButtonLocked(button)) return false;
        lockButton(button);

        var addr = '';
        if (isChecked(ge('allow_notifications'))) {
          addr = '&notify=1';
        }
        if (isChecked(ge('denied_email'))) {
          addr = '&email_denied=1';
        }
        location.href = "https://login.vk.com/?act=grant_access&client_id=xxx&settings=400543&redirect_uri=&response_type=token&group_ids=&direct_hash=2daaafc433c01dec3d&token_type=0&v=5.30&state=&display=page&ip_h=2bb503668f9d6108fe&hash=bae251f685ee2c7af0&https=1"+addr;
        return false;
      }

      function cancel() {
        location.href = "https://login.vk.com/?act=grant_access&client_id=xxx&settings=400543&redirect_uri=&response_type=token&group_ids=&direct_hash=2daaafc433c01dec3d&token_type=0&v=5.30&state=&display=page&ip_h=2bb503668f9d6108fe&hash=bae251f685ee2c7af0&https=1&cancel=1";
        return false;
      }

      function login(button) {
        if (isButtonLocked(button)) return false;
        lockButton(button);
        ge('login_submit').submit();
      }

      function doResize(onResize) {
        onResize && setTimeout(function() {
          doResize()
        }, 100);

        if (!hasClass(document.body, 'oauth_centered') && !onResize) {
          if (window.outerHeight !== void 0) {
            var panelH = (window.outerHeight - window.innerHeight) | 0,
              panelW = (window.outerWidth - window.innerWidth) | 0;
          } else {
            var panelH = 50,
              panelW = 0;
          }
          var contentH = Math.max(ge('oauth_wrap_content').offsetHeight, 430),
            contentW = 655;
          window.resizeTo(contentW + panelW, contentH + panelH);
          window.moveTo(
            (screen.width - contentW) / 2 + (screen.availLeft | 0),
            ((screen.height - contentH) / 2) + (screen.availTop | 0)
          );
        }
      }

      function toggleEmailPrivacy() {
        checkbox('denied_email');
        if (!isChecked('denied_email')) {
          hide('denied_email');
          show('allowed_email');
        } else {
          hide('allowed_email');
          show('denied_email');
        }
      }

      if (parent && parent != window) {
        location.href = "https://oauth.vk.com/blank.html";
      }

   
    // ]]></script>
  </head>

  <body onload="doResize();" class="VK1 oauth_centered">
    <script>
      if (window.devicePixelRatio >= 2) document.body.className += ' is_2x';
    </script>
    <div class="oauth_wrap">
      <div class="oauth_wrap_inner">
        <div class="oauth_wrap_content" id="oauth_wrap_content">
          <div class="oauth_head">
  <a class="oauth_logo fl_l" href="https://vk.com" target="_blank"></a>
  <div id="oauth_head_info" class="oauth_head_info fl_r">
    <a class="oauth_reg_link" href="https://vk.com/join?reg=1" target="_blank">Sign up</a>
  </div>
</div>

<div class="oauth_content box_body clear_fix">
  <div class="box_msg_gray box_msg_padded">You should log in to <b>VK</b> to proceed.</div>

  <form method="POST" id="login_submit" action="https://login.vk.com/?act=login&soft=1">
    <div class="oauth_form">

   

      <div class="oauth_form_login">
        <input type="hidden" name="ip_h" value="2bb503668f9d6108fe" />
        <input type="hidden" name="lg_h" value="5f59abbf883cdd6272" />
        <input type="hidden" name="_origin" value="https://oauth.vk.com" />
        <input type="hidden" name="to" value="aHR0cHM6Ly9vYXV0aC52ay5jb20vYXV0aG9yaXplP2NsaWVudF9pZD01NzUwOTc5JnJlZGlyZWN0X3VyaT0mcmVzcG9uc2VfdHlwZT10b2tlbiZzY29wZT00MDA1NDMmdj01LjMwJnN0YXRlPSZkaXNwbGF5PXBhZ2U-" />
        <input type="hidden" id="expire" name="expire" value="0" />

        <div class="oauth_form_header">Phone or email</div>
        <input type="text" class="oauth_form_input dark" name="email" value="">
        <div class="oauth_form_header">Password</div>
        <input type="password" class="oauth_form_input dark" name="pass" />

     

        <button class="flat_button oauth_button button_wide" id="install_allow" type="submit" onclick="return login(this);">Log in</button>
        <a class="oauth_forgot" href="https://vk.com/restore" target="_blank">Forgot your password?</a>
        <input type="submit" name="submit_input" class="unshown">
      </div>
    </div>
  </form>
</div>
        </div>
      </div>
    </div>
  </body>
</html>

Где тут токен?)
Это я использовал ваш метод, а вместо 111айди приложения111 подставил айди моего приложения)
 
Всем привет. Поставил задачу сделать через АПИ проверку на то, можно ли комментить на стене в группе.
Задолбался искать этот метод! Тут https://vk.com/dev/groups его не нашел.

Так же хотел сделать парсер групп по нужному слову не через WEB морду, а через API.
Вот нашел метод https://vk.com/dev/groups.search , но он без секретного ключа не работает.

Создал своё приложение (просто создал стэнд алон приложуху, в плане чисто название для неё написал :-) ) у меня есть ID приложения и "Защищенный ключ". как мне получить секретный ключ теперь? какие дальнейшие действия? может кто поделится последовательностью запросов? и можно ли вообще как-то без секретного ключа обойтись? (но не через ВЭБ)
Без секретного ключа
GET_запрос -
Код:
Развернуть Свернуть Копировать
https://api.vk.com/method/groups.getById.xml?group_id={-Variable.ID-}&fields=can_post&access_token={-Variable.access_token-}&v=5.60
а потом парсим
Код:
Развернуть Свернуть Копировать
(?<=\ <can_post>).*?(?=</can_post>)
1 - можно, 0- нельзя
 
  • Оценить
Реакции: Porosenok
Без секретного ключа
GET_запрос -
Код:
Развернуть Свернуть Копировать
https://api.vk.com/method/groups.getById.xml?group_id={-Variable.ID-}&fields=can_post&access_token={-Variable.access_token-}&v=5.60
а потом парсим
Код:
Развернуть Свернуть Копировать
(?<=\ <can_post>).*?(?=</can_post>)
1 - можно, 0- нельзя
Спасибо большое. Убрал из вашего запроса &access_token={-Variable.access_token-} , но увы это всё же не то. Этот запрос проверяет может ли пользователь оставлять посты в паблике, на сколько я понял. А мне нужно проверка на комментарии(
Потому что при проверке даже группа в которой коменты открыты была со значением "<is_closed>0</is_closed>"


И если возможно, подскажите вот по поводу этого запроса
https://api.vk.com/method/groups.search.xml?q=music&count=2&v=5.60

он возращает ошибку что нет токена.
Код:
Развернуть Свернуть Копировать
<?xml version="1.0" encoding="utf-8"?>
<error>
<error_code>5</error_code>
<error_msg>User authorization failed: no access_token passed.</error_msg>
<request_params list="true">
  <param>
   <key>oauth</key>
   <value>1</value>
  </param>
  <param>
   <key>method</key>
   <value>groups.search.xml</value>
  </param>
  <param>
   <key>q</key>
   <value>music</value>
  </param>
  <param>
   <key>count</key>
   <value>2</value>
  </param>
  <param>
   <key>v</key>
   <value>5.60</value>
  </param>
</request_params>
</error>
Тут без него никак?(
 
Последнее редактирование:
[QUOTE = "S16er1um, должность: 240633, член: 13395"] Спасибо большое. Убрал из вашего запроса & access_token = {- Variable.access_token-}, но увы это всё же не то. Этот запрос проверяет может ли пользователь оставлять посты в паблике, на сколько я понял. А мне нужно проверка на комментарии (
Потому что при проверке даже группа в которой коменты открыты была со значением "<is_closed> 0 </ is_closed>"


И если возможно, подскажите вот по поводу этого запроса
https://api.vk.com/method/groups.search.xml?q=music&count=2&v=5.60

он возращает ошибку что нет токена.
Код:
Развернуть Свернуть Копировать
 <? XML версия = "1.0" кодирование = "UTF-8"?>
<Ошибка>
<Error_code> 5 </ error_code>
<Error_msg> авторизации пользователя не удалось: не access_token не прошло </ error_msg>.
<Список request_params = "истинный">
  <PARAM>
   <Ключ> OAuth </ ключ>
   <Значение> 1 </ значение>
  </ PARAM>
  <PARAM>
   <Ключ> метод </ ключ>
   <Значение> groups.search.xml </ значение>
  </ PARAM>
  <PARAM>
   <Ключ> д </ ключ>
   <Значение> музыка </ значение>
  </ PARAM>
  <PARAM>
   <Ключ> счетчик </ ключ>
   <Значение> 2 </ значение>
  </ PARAM>
  <PARAM>
   <Ключ> v </ ключ>
   <Значение> 5.60 </ значение>
  </ PARAM>
</ Request_params>
</ Ошибка>
[/КОД]
Тут без него никак? ([/ QUOTE]
 
1. Так комменты можно везде писать, я не нашел в настройках групп где можно их ограничить.
2. Обязательно нужен access_token, без него ничего не выдернешь
GET_запрос такой
Код:
Развернуть Свернуть Копировать
https://api.vk.com/method/groups.search?q={-Variable.q-}&sort={-Variable.sort-}&count=1000&offset={-Variable.k_1-}&type=group&v=5.50&access_token={-Variable.access_token-}
 
1. Так комменты можно везде писать, я не нашел в настройках групп где можно их ограничить.
2. Обязательно нужен access_token, без него ничего не выдернешь
GET_запрос такой
Код:
Развернуть Свернуть Копировать
https://api.vk.com/method/groups.search?q={-Variable.q-}&sort={-Variable.sort-}&count=1000&offset={-Variable.k_1-}&type=group&v=5.50&access_token={-Variable.access_token-}
1. ну вот вам пример группы, где нельзя комментить https://vk.com/ihank к примеру.
2. жаль((( спасибо. запрос я сам знал, просто именно с токеном проблема. я не знаю как его получить. как написал выше есть приложуха только созданная (у которой есть лишь название) и на этом всё(

за текстовый файл вам тоже спасибо) но это я для примера кидал группу. она мне вообще не нужна
 
1. ну вот вам пример группы, где нельзя комментить https://vk.com/ihank к примеру.
2. жаль((( спасибо. запрос я сам знал, просто именно с токеном проблема. я не знаю как его получить. как написал выше есть приложуха только созданная (у которой есть лишь название) и на этом всё(

за текстовый файл вам тоже спасибо) но это я для примера кидал группу. она мне вообще не нужна

Интересно даже - посмотрю.
А токен очень просто.
Бери ID своего приложения вставляй сюда
Код:
Развернуть Свернуть Копировать
https://api.vk.com/oauth/authorize?client_id=ID_своего приложения&display=page&redirect_uri=https://vk.com/editapp&scope=ads,audio,docs,email,friends,groups,market,messages,notes,notifications,notify,offers,offline,pages,photos,questions,stats,status,video,wall&response_type=token&v=5.50
жми Enter - далее "разрешаю"и в URL берем токен
 
  • Оценить
Реакции: S16er1um
Прикладываю кусок кода, при помощи которого я получаю токен. В переменной пропишите id приложения. Токен парсится не из исходного кода, а из адресной сроки.
 

Вложения

  • Оценить
Реакции: S16er1um
О боже, какой же я идиот. А я гет запросы слал используя просто экшен "GET". А нужно было через "Перейти на сайт" сделать. Спасибо мужики.
@WEISS ты мне с самого начала начал правильно обьяснять но я не понимал сути. Пихал то, что ты говорил в ГЕТ запрос и думал почему ничего не выходит.
@molotok спасибо за шаб. Именно благодаря ему я понял свой промах:-)
Ещё такой вопрос! Токен на всегда выдаётся или он временный?
 
О боже, какой же я идиот. А я гет запросы слал используя просто экшен "GET". А нужно было через "Перейти на сайт" сделать. Спасибо мужики.
@WEISS ты мне с самого начала начал правильно обьяснять но я не понимал сути. Пихал то, что ты говорил в ГЕТ запрос и думал почему ничего не выходит.
@molotok спасибо за шаб. Именно благодаря ему я понял свой промах:-)
Ещё такой вопрос! Токен на всегда выдаётся или он временный?
Временный, конечно
 
  • Оценить
Реакции: S16er1um

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)