2013-07-03 2 views
0

У меня есть проблема с моим cUrl, он, похоже, не работает, может кто-нибудь мне помочь?Facebook api Curl

я попытался с file_get_contetn но не работал :(У меня есть ошибка с ним я searcched везде, но не смог найти что-нибудь: S

<?php 
       $app_id = "xxxxx"; 
       $app_secret = "xxxxx"; 
       $fanpage_id ='3xxxxx'; 

       $post_login_url = "xxxxxxxxxteszt.php"; 


       $photo_url = "xxxxxxxxxx20130412104817.jpg"; 


       $photo_caption = "sasdasd"; 

      $code = $_REQUEST["code"]; 

      //Obtain the access_token with publish_stream permission 
      if (!$code) 
      { 
      $dialog_url= "http://www.facebook.com/dialog/oauth?" 
       . "client_id=" . $app_id 
       . "&redirect_uri=" . urlencode($post_login_url) 
       . "&scope=publish_stream,manage_pages"; 

      echo("<script>top.location.href='" . $dialog_url 
       . "'</script>"); 
      } 
      if(isset($_REQUEST['code'])) 
      { 
      print('<script>alert("asd");</script>'); 
       function curl($url){ 
       $ch = curl_init(); 
       curl_setopt($ch, CURLOPT_URL,$url); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $url); 
       } 
      $token_url="https://graph.facebook.com/oauth/access_token?" 
       . "client_id=" . $app_id 
       . "&client_secret=" . $app_secret 
       . "&redirect_uri=" . urlencode($post_login_url) 
       . "&code=" . $code; 

      print($code); 
      $response = curl($token_url); 
      print($response); 
      $params = null; 
      parse_str($response, $params); 
      $access_token = $params['access_token']; 

      // POST to Graph API endpoint to upload photos 
      $graph_url= "https://graph.facebook.com/".$fanpage_id."/photos?" 
       . "url=" . urlencode($photo_url) 
       . "&message=" . urlencode($photo_caption) 
       . "&method=POST" 
       . "&access_token=" .$access_token; 

      echo '<html><body>'; 

       echo curl($graph_url); 

      echo '</body></html>'; 
      } 
     ?> 
+1

Что такое «ошибка»? –

+0

Не похоже, что вы фактически выполняете запрос на завивание. Вы устанавливаете его с помощью '$ ch = curl_init()', но я не вижу 'curl_exec ($ ch)' в вашем коде где угодно? Посмотрите на пример [здесь] (http://www.php.net/manual/en/function.curl-setopt.php). Также вы можете установить значение 'CURLOPT_RETURNTRANSFER' в true. – Dropzilla

ответ

1

Измените свой локон функция

function curl($url){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $response = curl_exec($ch); 
    if($response === false) 
    { 
     echo 'Curl error: ' . curl_error($ch); 
    } 
    else 
    { 
     $response = $response; 
    }   

    curl_close($ch); 
    return $response; 
} 

Это приведет к выполнению вашего запроса на завивание и распечатку ошибки, если это произойдет.

EDIT: Я упростил выполнение curl, так как вы форматируете строку, которая действительно проходит через запрос на получение, поэтому нет необходимости в настройках post, которые вы настраиваете. Попробуйте это и посмотрите, что вы получите.

+0

У меня была ошибка с этим ... первый был хозяин не найден ... я изменил https на http, чем это было исправлено .. но после этого у меня появилась ошибка 302 Найдена ошибка –

+0

Ошибка Curl: не удалось подключиться к Ошибка hostCurl: не удалось подключиться к хосту - это ошибка, если его https –

+0

Я обновил функцию, упростив ее, так как вы фактически не делаете сообщение. Попробуйте и посмотрите, что произойдет. – Dropzilla

0

Прежде всего, это немного странно, если вы объявляете свою функцию curl посреди вашего оператора if, но, во-вторых, в вашей функции curl отсутствуют некоторые базовые элементы. , ,

Вы инициируете и задаете параметры, но вы не выполняете! url_exec($ch) отсутствует в вашей функции завитка. Минимальное использование локон должен иметь это:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "example.com"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch); 

http://php.net/manual/en/curl.examples.php

Во-вторых ваша локон функция не имеет никакого вывода! так что же есть, чтобы эхо?

Функция curl должна заканчиваться чем-то вроде. , , return $output;