[英]How do I mask Facebook graph api URLs for pictures?
我正在嘗試在我的網站上顯示Facebook個人資料圖片,但不想泄露來源中人的Facebook ID。
例如,此URL: http : //graph.facebook.com/4/picture將重定向到: http : //profile.ak.fbcdn.net/hprofile-ak-snc4/157340_4_3955636_q.jpg瀏覽器。 我想獲取第二個URL(CDN URL)並將其用作我的img src,因為它沒有在URL中顯示facebook id。
我目前正在Ruby on Rails中進行此操作,並且很好奇下面是否有更好的方法:
def picture_square(facebook_id, secure=false)
raw_url = "http://graph.facebook.com/" facebook_id + "/picture?type=square"
if secure
binary_img = ''
open(raw_url) do |f|
binary_img = f.read
end
encoded_img = Base64.encode64(binary_img)
return 'data:image/jpg;base64,' + encoded_img.to_s
else
return raw_url
end
end
您可以使用以下HTML調用此代碼(使用上面的示例):
<img src="<%= picture_square(4, true) %>"
這絕對有效,並使用內聯圖像屬性實際渲染圖像,但是如果要加載一堆圖像,則速度會有些慢。
在Ruby中,有沒有一種方法可以獲取重定向的URL並僅將其返回,而不是嘗試獲取實際的原始二進制數據並將其編碼為base64?
使用以下網址調用圖形API: http : //graph.facebook.com/4/? fields= picture& type= large
這將返回您在json響應中尋找的圖像。 另一種選擇是對您發布的第一個URL發出http請求,然后檢查HTTP標頭以讀取位置標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.