2012-02-15 89 views
0

我在PHP上使用Graph Api來獲取用戶的專輯。獲取專輯封面照片

當我展示他們時,我還想爲每張專輯展示封面照片。我確實在每張專輯中獲得了[cover_photo]屬性,但是我想要顯示該圖片而不必爲每張圖片發出新請求,以獲取所有這些圖片的source網址。

有沒有辦法做到這一點?

我嘗試(沒有成功),以獲取照片執行以下操作:

<img src="//graph.facebook.com/<?=$album['id'] ?>/picture"> 

我讀a post about it其中的解決方案是:

https://graph.facebook.com/<id>/picture?type=album&access_token=<token> 

但我不能只是把裏面的access_token公開img src ...我可以嗎?

+0

'// graph.facebook.com'將反正是無效的網址。 – 2012-02-15 21:39:29

+4

它是一個有效的URL。它是一個協議相對URL。 – 2012-02-15 21:39:50

+0

我從這篇文章中找到它:http://paulirish.com/2010/the-protocol-relative-url/ – 2012-02-15 21:40:36

回答

1

你這樣做非常認真。但是您不必擔心,因爲任何使用訪問令牌的圖API調用都會自動要求請求爲https。

另一種方法:您可以在腳本結束時註銷Facebook會話,這會使訪問令牌失效。

在相關說明中,facebook沒有提到這是安全風險。他們在通過將HTTP請求包含進來而導致訪問令牌泄露方面存在問題,並且也未使用HTTPS。這兩個孔都是固定的,並且非expriing標記也被刪除。 https://developers.facebook.com/blog/post/497/

這裏是一個很好的文章,解釋的訪問令牌的安全性,因爲Facebook的切換到OAuth 2.0 http://www.sociallipstick.com/?p=239

0

如果您公開您的access_token,您需要採取預防措施,以便用戶不會在不知情的情況下將其提供給其他人。

確保您的應用程序通過HTTPS進行通信,否則如果您的用戶在公共WiFi上瀏覽您的網站,則可以窺探您的流量並獲取access_token。這種攻擊與Firesheep的工作方式類似。

如果惡意第三方獲取用戶的access_token,他可以通過請求查詢Facebook,就好像他是您的應用一樣。如果您的應用具有publish_stream或manage_friendslists權限,這可能會變得非常討厭。

只要您的用戶知道這一點,就沒有問題。您不希望用戶擁有的主要內容是您的應用程序的祕密密鑰。在身份驗證過程中,您的應用程序會告訴用戶的瀏覽器轉到Facebook並返回一個「代碼」。然後,您的服務器直接連接到Facebook(用戶的瀏覽器不知道),並將該代碼與應用程序的密鑰一起發送。 Facebook使用訪問令牌回到您的服務器。

+0

我的確瞭解OAuth流程。這就是爲什麼我試圖找到一個解決方案,不需要將access_token放在img src中。 – 2012-02-16 14:46:05