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

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

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

Сообщение endloz » 13 ноя 2012, 15:52

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
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



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

Сообщение endloz » 13 ноя 2012, 16:58

:cry: только вместо результатов пустота. совсем ничего... В чем может быть причина?
endloz

 
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение dimaqwerty » 13 ноя 2012, 22:31

ничего не выводиться пустая страница
dimaqwerty

 
Сообщения: 2
Зарегистрирован: 12 ноя 2012, 15:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение dimaqwerty » 13 ноя 2012, 23:44

dimaqwerty писал(а):ничего не выводиться пустая страница

У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало
dimaqwerty

 
Сообщения: 2
Зарегистрирован: 12 ноя 2012, 15:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение endloz » 14 ноя 2012, 06:15

dimaqwerty писал(а):
dimaqwerty писал(а):ничего не выводиться пустая страница

У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало

Спасибо Вам за ответ. Только я не до конца понял где искать то или иное app id. У меня есть в настройках самого приложения (в самом контакте) - id приложения, собственно которое я и использую.
endloz

 
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 14 ноя 2012, 14:41

endloz писал(а): только вместо результатов пустота. совсем ничего... В чем может быть причина?

Запрос точно происходит? Функция с curl написана правильно? Что возвращает сервер api?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение endloz » 14 ноя 2012, 15:17

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_HEADER, 0);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. curl_setopt($ch, CURLOPT_URL, $query);
  5. $res = curl_exec($ch);
  6. curl_close($ch);
  7. //$res = file_get_contents($query);
  8. 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, проверка работоспособности которого прошла успешно.
Спасибо.
endloz

 
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 14 ноя 2012, 15:45

endloz
  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_HEADER, 0);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. curl_setopt($ch, CURLOPT_URL, $query);
  5. $res = curl_exec($ch);
  6. curl_close($ch);
  7. //$res = file_get_contents($query);
  8. echo $query.'<br />';
  9. echo $res.'<br />';
  10. //return json_decode($res, true);

Что выводит? Curl точно работает на сервере?

Проверка поддержки cURL на вашем хостинге
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение endloz » 14 ноя 2012, 17:16

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

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


  1. <?php
  2. $url = 'http://www.google.ru/';  
  3. $ch = curl_init();  
  4. curl_setopt($ch, CURLOPT_URL, $url);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_HEADER, 0);
  7. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  8. $page = curl_exec ($ch);
  9. curl_close($ch);  
  10. echo $page;  
  11. ?>

Содержимое curl.php на хосте. Открывает гугл без проблем, но без главной картинки "Google Россия" над поисковой строкой запроса.
Изображение

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

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

 
Сообщения: 11
Зарегистрирован: 13 ноя 2012, 15:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 14 ноя 2012, 17:34

endloz
То есть и $query не выводит? Так если эта переменная пустая, то запрос и не выполнится...
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Пред.След.

Вернуться в Уроки по использованию ВКонтакте API



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0