2012-06-24 6 views
4

Я работаю над приложением facebook, которое будет использовать Graph API для аутентификации, код работал отлично, но теперь я внезапно начал получать Хостинг - это недостижимые ошибки. Код я использую:Facebook Graph API недоступен

$token_url = "https://graph.facebook.com/oauth/access_token?". 
       "client_id=[client_id]". 
       "&redirect_uri=http://www.next_big_website.com". 
       "&client_secret=[client_secret]". 
       "&code=" . $_GET['code']. 
       "&scope=manage_pages,publish_stream,publish_actions,read_mailbox,email". 
       "&response_type=token"; 
    $response = file_get_contents($token_url); 

И ошибка я получаю это:

Предупреждение (2): file_get_contents (https://graph.facebook.com/oauth/access_token?client_id= [client_id] & redirect_uri = HTTP: //www.next_big_website.com & client_secret = [client_secret] & код = somelong_and_ugly_code & сфера = manage_pages, publish_stream, publish_actions, read_mailbox, электронная почта & response_type = маркер): не удалось открыть поток: Сеть недопустимый [temp.php, строка 112]

Пожалуйста, помогите мне с этим, поскольку я не знаю, что могло бы вызвать это.

Хорошо, я немного пошатнулся и нашел решение, потому что facebook пытается заставить IPv6, потому что всякий раз, когда мой сервер пытается подключиться, используя IPv4, Facebook отклоняет мой запрос, трассирует трассировку пути к серверам API facebook, а затем запрос отбрасывается.

Благодаря

+0

Есть ли у вас HTTPS поток открыт для file_get_content в вашем php.ini? Кроме того, что вы пытаетесь сделать с этим вызовом? –

+0

Как я могу открыть их? Я пытаюсь получить токен доступа для пользователя. Спасибо – TilalHusain

+0

Пользователь аутентифицировал ваше приложение? –

ответ

2

Fixed его с помощью

$url = ("https://graph.facebook.com/me/access_token?token"); 
    $c = curl_init(); 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($c, CURLOPT_URL, $url); 
    curl_setopt($c, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
    $contents = curl_exec($c); 
    $err = curl_getinfo($c,CURLINFO_HTTP_CODE); 
    curl_close($c);