私は自分のサイトにFacebookのプロフィール写真を表示しようとしていますが、ソースの人のFacebookのIDを漏らしたくありません。写真のFacebookグラフAPIのURLをマスクするにはどうすればいいですか?
たとえば、このURL:http://graph.facebook.com/4/pictureは、ブラウザにロードするとhttp://profile.ak.fbcdn.net/hprofile-ak-snc4/157340_4_3955636_q.jpgにリダイレクトされます。私は2番目のURL(CDNのURL)を取得し、それが私のimg srcとして使用したいので、URLにfacebook idが表示されません。
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でこれを呼び出すことができます(上記を使用して:私は、現時点ではRuby on Railsでこれをやって、私は以下のやっていることことをより良い方法があるかどう興味津々だ
例):
<img src="<%= picture_square(4, true) %>"
これは間違いなく動作し、実際に画像をレンダリングするために、インライン画像のプロパティを使用しますが、あなたがロードしようとしている画像の束を持っている場合、それは少し遅いです。
リダイレクトされたURLを取得し、実際の生のバイナリデータを取得してbase64にエンコードしようとする代わりに、そのURLを返す方法がありますか? http://graph.facebook.com/4/?fields=picture&type=large
これは、あなたがJSONレスポンスの内部を探しているイメージを返します。
これは完全に機能しました。ありがとう! – fffanatics