ФорумПрограммированиеPHP для идиотов → Парс

Парс

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 19:15, спустя 5 минут 49 секунд


    не знаю, чувак. Я уже начинаю праздноватть.
    А ты пользуйся поиском http://pyha.ru/forum/topic/5014.0


    ага уже читаю сижу ))) а что за праздник?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 сентября 2010 г. 19:16, спустя 1 минуту 25 секунд

    День программиста
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 19:46, спустя 29 минут 34 секунды

    заюзал класс phpdude, поправив его немного (protected function call, заменил на function call, а то не працювало), но всё равно:

    //$resp = $VK->call('getProfiles', array('uids'=>'20383130')); // работает
    $resp = $VK->call('audio.search', array('q'=>'Leslie - Never Never')); // не работает
    print_r($resp);
    $VK->debug($resp);


    пойду другие метхуды попробую.

    stdClass Object
    (
    [error] => stdClass Object
    (
    [error_code] => 3
    [error_msg] => Unknown method passed
    [request_params] => Array
    (
    [0] => stdClass Object
    (
    [key] => api_id
    [value] => 1952554
    )

    [1] => stdClass Object
    (
    [key] => format
    [value] => JSON
    )

    [2] => stdClass Object
    (
    [key] => method
    [value] => audio.search
    )

    [3] => stdClass Object
    (
    [key] => q
    [value] => Leslie - Never Never
    )

    [4] => stdClass Object
    (
    [key] => random
    [value] => 1960493
    )

    [5] => stdClass Object
    (
    [key] => test_mode
    [value] => 0
    )

    [6] => stdClass Object
    (
    [key] => timestamp
    [value] => 1284392432
    )

    [7] => stdClass Object
    (
    [key] => v
    [value] => 2.0
    )

    [8] => stdClass Object
    (
    [key] => sig
    [value] => 9f937c20b30739f36c1d76461d0ed249
    )

    )

    )

    )
    Спустя 109 сек.
    stdClass Object
    (
    [error] => stdClass Object
    (
    [error_code] => 4
    [error_msg] => Incorrect signature
    [request_params] => Array
    (
    [0] => stdClass Object
    (
    [key] => api_id
    [value] => 1952554
    )

    [1] => stdClass Object
    (
    [key] => format
    [value] => JSON
    )

    [2] => stdClass Object
    (
    [key] => method
    [value] => audio.search
    )

    [3] => stdClass Object
    (
    [key] => q
    [value] => Leslie - Never Never
    )

    [4] => stdClass Object
    (
    [key] => random
    [value] => 8702414
    )

    [5] => stdClass Object
    (
    [key] => test_mode
    [value] => 1
    )

    [6] => stdClass Object
    (
    [key] => timestamp
    [value] => 1284392729
    )

    [7] => stdClass Object
    (
    [key] => v
    [value] => 3.0
    )

    [8] => stdClass Object
    (
    [key] => sig
    [value] => db08c1f059a03dc341f084d251973d93
    )

    )

    )

    )
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 сентября 2010 г. 20:15, спустя 29 минут 45 секунд

    а чо не пашет то?)
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 20:25, спустя 9 минут 25 секунд

    не знайу, не ищет если метхуд audio.search и всё :( читаю
    http://vk.com/developers.php?o=-1&p=audio.search

    Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей 8


    читаю дальше: http://vk.com/developers.php?o=-1&p=%D0%9F%D1%80%D0%B0%D0%B2%D0%B0+%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9

    и никуя не понимаю, указывать в метхуде audio.search(1032) (1024+8) или чё они хотят?

    сделал ещё $resp = $VK->api('getUserSettings', array('uid'=>'20383130'));
    потом пошёл в настройки добавленного приложения, поставил галку "Разрешить приложению доступ к Вашим аудиозаписям"
    теперь при выполнении getUserSettings показывает 8, и пофик.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 сентября 2010 г. 20:33, спустя 7 минут 59 секунд

    :)
    Спустя 16 сек.
    тебе надо чтобы юзер разрешил эту функцию
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 20:43, спустя 10 минут 21 секунду

    дык разрешил ведь:

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 сентября 2010 г. 20:45, спустя 2 минуты 8 секунд

    ну тогда читай дальше мануалы!) возможно там еще где то жопа
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 20:51, спустя 5 минут 48 секунд

    будет большая жопа если контакт через API отдает не прямые ссылки, а снова как через тупой парсинг.
    Спустя 9 сек.
    пошёл дальше читать :(
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 сентября 2010 г. 22:11, спустя 10 минут 56 секунд

    developer, зря подпись палишь)
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 13 сентября 2010 г. 23:44, спустя 1 час 33 минуты 5 секунд


    developer, зря подпись палишь)

    а это не моя =)) гугловская, блин почему же не работает, уже и urlencode пробовал для запроса использовать и добавлял test_mode и count … всё те же яйцо.
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 14 сентября 2010 г. 9:28, спустя 9 часов 44 минуты 26 секунд

    $secret = md5('api_id='.$api_id.'format=jsonmethod=audio.searchq=Lesliev=3.0'.$secret_key);
    echo 'http://api.vkontakte.ru/api.php?api_id='.$api_id.'&format=json&method=audio.search&q=Leslie&v=3.0&sig='.$secret;


    даже ручное составление не работает. фкщт. пробовал в secret указывать id юзера, тоже не хочет, менял url api (api.vk.com), менял версию на 2.0, всё вилами по воде.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 сентября 2010 г. 9:47, спустя 18 минут 23 секунды

    developer, не сдавайся :)
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 14 сентября 2010 г. 13:44, спустя 3 часа 57 минут 58 секунд

    audio.search не является серверным методом. Работает только от юзера.

    поэтому возвращаемся назад к парсингу регулярками, парсим:

        $context = stream_context_create(array(
    'http' => array(
    'method' => 'POST',
    'header' => 'User-Agent: TRO Vkontakte Audio Parser' . PHP_EOL .
    'Referer: http://vkontakte.ru/index.php' . PHP_EOL .
    'Cookie: ' . $cookies . PHP_EOL .
    'X-Requested-With: XMLHttpRequest' . PHP_EOL .
    'Content-Type: application/x-www-form-urlencoded' . PHP_EOL,
    'content' => 'c='.$query.'&c[section]=audio',
    ),
    ));


    Есть вариант представления клиентом, а не сервером, чтобы контакт отдавал реальные id треков?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!