2013-07-03 5 views
0

나는 내 cel과 함께 probelm을 가지고있다. 그것은 나에게 도움이 될만한가?Facebook api Curl

은 내가 file_get_contetn으로 시도했지만 일을 일부러 :(내가 그것을 내가 사방 searcched하지만 한에 오류가 아무것도 발견을 couldnt :

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; 
} 

에 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

변경하여 컬 기능을 이렇게하면 말풍선 요청이 실행되고 오류가 발생하면 인쇄됩니다.

EDIT : 커링 (curl) 실행을 단순화했는데, 실제로 커밋 요청을 처리 할 문자열을 서식 지정하고 있으므로 사용자가 설정 한 게시 옵션이 필요하지 않습니다. 이것을 시도하고 당신이 얻는 것을보십시오.

+0

나는 이것에 대한 오류가있었습니다 ... 첫 번째는 발견되지 않은 호스트였습니다 ... 나는 https를 http로 변경 한 것보다 수정했습니다. 그러나 그 후에 발견 된 오류가 있습니다. –

+0

컬 오류 : 연결할 수 없습니다 호스트에 연결할 수 없습니다. https가 –

+0

인 경우 오류가 발생했습니다. 실제로 게시물을 게시하지 않으므로이 기능이 단순화되었습니다. 그것을 시도하고 어떻게되는지보십시오. – Dropzilla

0

우선, '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

둘째로 당신의 컬 함수가 출력을하지 않습니다! 그래서 에코 할게 뭐야?

귀하의 컬 기능은 다음과 같이 끝나야합니다. . . return $output;