簡體   English   中英

如何屏蔽圖片的Facebook圖形api URL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM