Вызов серверных методов (APIServerPHPClass)

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
endloz
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение endloz »

Nick Lisogor писал(а):Для тех, у кого не работает file_get_contents() используйте curl() + он безопаснее.
КАК? Подскажите, пожалуйста! Весь инет перерыл, толком не нашел. Только начинаю изучать PHP.
file_get_contents - запрещен на сервере: "allow_url_fopen Off", а вот cURL - "cURL support enabled".
Мне всего-то необходимо получить имя, фамилию и путь к аватарке пользователя, пусть даже в формате json. Буду очень признателен вам, за конкретный пример! Спасибо заранее!

:oops: Прошу прощения - уже сам понял как: просто в файле класса создал свою функцию file_get_contents (изменив имя), а в ней проделываю действия через cURL.
endloz
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение endloz »

:cry: только вместо результатов пустота. совсем ничего... В чем может быть причина?
dimaqwerty
Сообщения: 2
Зарегистрирован: 12 ноя 2012, 15:57

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение dimaqwerty »

ничего не выводиться пустая страница
dimaqwerty
Сообщения: 2
Зарегистрирован: 12 ноя 2012, 15:57

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение dimaqwerty »

dimaqwerty писал(а):ничего не выводиться пустая страница
У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало
endloz
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение endloz »

dimaqwerty писал(а):
dimaqwerty писал(а):ничего не выводиться пустая страница
У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало
Спасибо Вам за ответ. Только я не до конца понял где искать то или иное app id. У меня есть в настройках самого приложения (в самом контакте) - id приложения, собственно которое я и использую.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение Александр »

endloz писал(а): только вместо результатов пустота. совсем ничего... В чем может быть причина?
Запрос точно происходит? Функция с curl написана правильно? Что возвращает сервер api?
endloz
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение endloz »

Код: Выделить всё

$ch = curl_init();curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $query);$res = curl_exec($ch);curl_close($ch);//$res = file_get_contents($query);return json_decode($res, true);
Листинг из редактированного мною vkapi.class.php
Приходит пустота. Ни ошибок, ничего. access_token, как я понимаю получать не надо, ибо данные прекрасно передаются без него, если пройти просто по ссылке https://api.vkontakte.ru/method/users.get?uids=ЛЮБОЙ_ID&fields=photo. Тогда решение сводится к минимуму - как отправить запрос чтобы получить ответ в переменную в формате json (как это получает браузер). Повторюсь - я новичек и только начинаю понимать что к чему. Ранее имел опыт в программировании (Basic, Pascal/Delphi, C++). Сейчас изучаю все прелести PHP + MySQL.
С учетом того, что на моем хосте отключена возможность использования ф-ии file_get_contents, а ее обход путем создания в папке .htaccess не дает результатов (хост блочит), то есть возможность это сделать через cURL, проверка работоспособности которого прошла успешно.
Спасибо.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение Александр »

endloz

Код: Выделить всё

$ch = curl_init();curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $query);$res = curl_exec($ch);curl_close($ch);//$res = file_get_contents($query);echo $query.'<br />';echo $res.'<br />';//return json_decode($res, true);
Что выводит? Curl точно работает на сервере?

Проверка поддержки cURL на вашем хостинге
endloz
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение endloz »

Александр писал(а):endloz
Что выводит? Curl точно работает на сервере?

Проверка поддержки cURL на вашем хостинге

Код: Выделить всё

<?php$url = 'http://www.google.ru/';  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_TIMEOUT, 10);$page = curl_exec ($ch);curl_close($ch);  echo $page;  ?>
Содержимое curl.php на хосте. Открывает гугл без проблем, но без главной картинки "Google Россия" над поисковой строкой запроса.
Изображение

При попытке же обратится к методам вк ничего не выводит. При просмотре исходного кода фрейма видно только несколько тегов <br />.

После каких-то манипуляций (тырканий кода по разным адресам flapps.ru, yandex.ru, google.ru, http://www.api.vkontakte.......) в выше указанном коде, наконец-то начала выводится информация без кодировки:
Изображение
Правда через контакт все равно не работает ничего - пустой белый фрейм с кодом, содержащим несколько <br />
Последний раз редактировалось endloz 14 ноя 2012, 17:34, всего редактировалось 1 раз.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вызов серверных методов (APIServerPHPClass)

Сообщение Александр »

endloz
То есть и $query не выводит? Так если эта переменная пустая, то запрос и не выполнится...
Ответить