2011-08-01 37 views
3

所以我得到這個錯誤,我不知道爲什麼。 When I run it on the server it's onI get a 404 error with a simple request like this.從Facebook的圖形API獲取404錯誤

$json = file_get_contents('https://graph.facebook.com/me?access_token='.LONGSTRING); 

的錯誤是:

function.file-get-contents: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found 

不過,我可以粘貼,我與file_get_contents直接在同一時間瀏覽器中使用的URL,它來了。所以好像Facebook阻止了我的服務器。

另外它工作的一半時間。

任何想法?

回答

5

嘗試cURL,不知道爲什麼file_get_contents不可靠,但我在過去看到過同樣的問題。我用這個的getURL功能捲曲的URL和傳遞的參數作爲PHP數組

function geturl($url, $params) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, null, '&')); 
    $ret = curl_exec($ch); 
    curl_close($ch); 
    return $ret; 
} 

,然後可以稱爲像這樣

$url = 'https://www.graph.facebook.com/me'; 
$params = array('access_token' => '*********************'); 
$graph_ret = geturl($url, $params); 
+0

工作......儘管圖表API不允許POST,所以我只是將它附加到URL並且它工作。希望當另一個沒有時它會工作。 –

+0

很高興工作。僅供參考,圖形API絕對允許在某些情況下POST,甚至需要某些操作。 – DSchultz

0
$json = @file_get_contents('https://graph.facebook.com/me?access_token='.$access_token) or die("ERROR"); 

使用,這將幫助你很多