2010-07-16 109 views
5

例如,這裏有一個「頁面」:使用Facebook Graph API,我怎樣才能得到一個頁面的內容?

http://www.facebook.com/facebook

該頁面有一個RSS feed(我想用,最好是哪種),但一)瀏覽器的嗅探這意味着我需要假用戶代理從腳本中獲取 - 並且感覺非常脆弱b)返回數據的質量非常差。

我可以使用圖形API獲取相同的數據嗎?此網址:

https://graph.facebook.com/facebook/feed

意味着我可以和JSON是爲我好,但我這取從PHP腳本,而不是客戶端。然而,當我嘗試網址爲我的實際網頁,我得到如下:

{ 
    "error": { 
     "type": "OAuthAccessTokenException", 
     "message": "An access token is required to request this resource." 
    } 
} 

我不明白爲什麼需要我的頁面訪問令牌,而其他頁面是「更多的公衆」 - 是,某個地方的頁面上的配置?如果不是,獲取訪問密鑰的最佳方式是什麼 - 請注意,這是而不是交互式腳本,要求頁面所有者進行身份驗證。

+0

您是否嘗試抓取您的網址之前,您的用戶連接? – Doomsday 2010-07-20 09:42:30

+0

這是術語開始引發問題的地方......這是我在這裏討論的'頁面',但是當你說「你的用戶」時,你的意思是一個用戶是誰的頁面管理員?我仍然試圖讓我的頭腦圍繞(龐大而複雜的)Facebook數據模型。 – 2010-07-20 09:51:28

回答

5

如果我嘗試通過CURL訪問URL,它在PHP中對我有用。

$curlResponse = http('https://graph.facebook.com/facebook/feed'); 
$facebookFeed = json_decode($curlResponse['data'], true); 

var_dump($facebookFeed); 

使用這個PHP函數:

function http($url) { 
    $timeout = 30; 
    $connectTimeout = 30; 
    $sslVerifyPeer = false; 

    $response = array(); 
    $ci  = curl_init(); 

    /* Curl settings */ 
    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $connectTimeout); 
    curl_setopt($ci, CURLOPT_TIMEOUT, $timeout); 
    curl_setopt($ci, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:')); 
    curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $sslVerifyPeer);  
    curl_setopt($ci, CURLOPT_URL, $url); 

    $response['http_code'] = curl_getinfo($ci, CURLINFO_HTTP_CODE); 
    $response['api_call'] = $url; 
    $response['data']  = curl_exec($ci); 

    curl_close ($ci); 

    return $response; 
} 
+0

所以看來數據是公開的,並且不需要認證。 – eillarra 2010-07-22 13:57:40

+0

那麼,一些數據似乎是公開的 https://graph.facebook.com/104783309570620/feed(這是一個網站頁面) https://graph.facebook.com/141228739224419/feed(一家商店) 和一些沒有... https://graph.facebook.com/104412186277028/feed(音樂樂隊頁面) – eillarra 2010-07-22 14:07:55

+0

奇怪 - 我們的'網頁'的相應網址不是這樣的行爲,但現在! Facebook做出了改變,或者某人以某種方式改變了我們的'網頁'以允許這樣做。你的回答是正確的,儘管它正是我想要的:-)所以有一些賞金! – 2010-07-26 09:34:27

相關問題