Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   cURL авторизация Вконтакте (https://javascript.ru/forum/server/8888-curl-avtorizaciya-vkontakte.html)

InviS 19.04.2010 08:58

cURL авторизация Вконтакте
 
Подскажите, пожалуйста, почему у меня не получается авторизоваться в контакте с сервера? Дома у меня прекрасно заходит и выводит мою страничку (на Denwer). Как только я выкладываю все на сервер, то все перестает работать. Вот код, с помощью которого я пытаюсь авторизоваться:
function get_page_post($url,$postdata) {
	  $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
	 
	  $ch = curl_init( $url );
	  curl_setopt($ch, CURLOPT_URL, $url);
	  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	  curl_setopt($ch, CURLOPT_HEADER, 0);
	  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	  curl_setopt($ch, CURLOPT_ENCODING, "");
	  curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
	  curl_setopt($ch, CURLOPT_TIMEOUT, 120);
	  curl_setopt($ch, CURLOPT_FAILONERROR, 1);
	  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
	  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
	  curl_setopt($ch, CURLOPT_COOKIEFILE,"cookies.txt");

	  $content = curl_exec( $ch );
	  $err     = curl_errno( $ch );
	  $errmsg  = curl_error( $ch );
	  $header  = curl_getinfo( $ch );
	  curl_close( $ch );

	  $header['errno']   = $err;
	  $header['errmsg']  = $errmsg;
	  $header['content'] = $content;

	  return $header;
	}

Gvozd 19.04.2010 15:41

выведете все ошибки
мы что телепаты?
может у вас на сервере вообще закрыты внешние соединения и удален CURL?

InviS 19.04.2010 18:00

Возвращается пустая страница... Когда вывел номер ошибки и ошибку cURL, то получил вот что:
Цитата:

6 - Couldn't resolve host....
Не пойму... почему с сервера такая ошибка, А с денвера все ОК?...

e1f 19.04.2010 19:11

InviS, а если обратится к vkontakte по ip (93.186.231.219)?

piter 24.04.2010 06:07

та же проблема с контактом, вернее - с хостингом.
 
А как обратиться к сайту по айпи (извините меня пожалуйста)?
Дело в том, что когда я обращаюсь по "api.vkontakte.ru/api.php?...." - все нормально (на локальном сервере), а когда обращаюсь по "93.186.224.232/api.php?....." получаю FORBIDEN. В чем ошибка, проясните, пожалуйста, очень прошу.:blink:

e1f 24.04.2010 17:56

piter, в таком случае - никак. Что api, что main - на одном IP. Да и проблема скорее всего не в этом. Попробуйте cURL'ом обратится куда-то еще (на тот же гугл). Тоже будет Couldn't resolve hostname?

Gvozd 24.04.2010 18:21

Цитата:

Сообщение от e1f
в таком случае - никак. Что api, что main - на одном IP

ну, что глупости?!
$uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://213.180.204.8/logo.png');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_HTTPHEADER,array(
	'Host: ya.ru'
	));
$content = curl_exec( $ch );
file_put_contents('logo.png',$content);
curl_close( $ch );

e1f 24.04.2010 18:56

Gvozd, и? ping vkontakte.ru - 93.186.231.219. ping api.vkontakre.ru - 93.186.231.219. Как мне получить http://93.186.231.219/api.php? 403 Forbidden. На серваке, видимо, будет что-то вроде http://93.186.231.219/api/api.php, но мне-т от этого ни холодно, ни жарко.

Gvozd 24.04.2010 19:01

e1f,
ты дурак или невнимательный?!
в своем скрипте я заменил
curl_setopt($ch, CURLOPT_URL,'http://213.180.204.8/logo.png');
на
curl_setopt($ch, CURLOPT_URL,'http://93.186.231.219/api.php');
и в свою очередь заменил
'Host: ya.ru'
на
'Host: api.vkontakte.ru'
и как итог получил овтет:
Код:

<?xml version="1.0" encoding="utf-8"?>
<error>Invalid application API ID</error>


pyhpyh 24.04.2010 20:52

все ли обязательные параметры передаёте?
тут уже всё прочитали?
Цитата:

<error>Invalid application API ID</error>
Цитата:

Название параметра - app
Обязательный - ✔
Описание - ID вашего приложения
пища для размышления)


Часовой пояс GMT +3, время: 19:12.