Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Запрос циклом - правильно ли это?
Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2016
Помог: 0 раз(а)
Доброго времени суток. Подскажите, пожалуйста, новичку.
Пытаюсь сделать авторизацию на сайте через ВКонтакте. Проблема в том, что почему-то file_get_contents срабатывает не всегда (50/50 - либо сработает, либо нет). Ничего лучше пока не придумал, чем сделать такую конструкцию:
Вопросов, собственно, два:
1. Как мне задать время таймаута этого запроса? (Сервер не мой и php.ini поправить не могу, а ждать по 30 секунд каждый раз - долго. Если запрос обработается с 4 раза - полторы минуты ожидания для конечного пользователя )неприемлемо долго). 1 секунда на запрос - было бы замечательно.)
2. Какие подводные камни могут встретиться при таком подходе к делу?
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013
Помог: 7 раз(а)
Хм....у VK же API имеется. Oauth авторизация и делай, что хочешь(в пределах возможностей API). Ограничение 3 запроса в секунду, но у VK есть свой JS-подобный язык, позволяющий сделать до 25 вызовов за одно обращение.
----- Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
hayntsev
Отправлено: 27 Марта, 2016 - 16:37:02
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2016
Помог: 0 раз(а)
T1grOK пишет:
Хм....у VK же API имеется. Oauth авторизация и делай, что хочешь(в пределах возможностей API). Ограничение 3 запроса в секунду, но у VK есть свой JS-подобный язык, позволяющий сделать до 25 вызовов за одно обращение.
Беда в том, что чтобы добраться до API нужно пройти авторизацию по OAuth. А с этим иногда проблемы бывают, при запросах со сторонних серверов. У меня например, почему-то токен не всегда получается забрать через file_get_contents (через раз примерно). Причём для теста делал предварительное открытие странички в отдельной вкладке - там json нормально себе существует. А парсинг этой странички через раз уходит на таймаут. Не могу понять в чём дело: то ли сервер моего хостера тупит, то ли сервер ВК. Иногда токен получаю только после 5-6 попыток спарсить - и каждый раз по 30 секунд ждать приходится.
Пробовал через cURL получать - ещё хуже становится: если не получил json, то браузер по 500 вываливается.
Вот и думаю, каким костылём эту проблему порешать.
Программа отправляет запрос, затем "спит" одну секунду, проверяет получение ответа, если ответ получен, то выходит из цикла, иначе повторяет цикл. При этом таймаута запроса не ждёт - всё в порядке. Пользуйтесь, кому надо...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.