當用戶通過Facebook登錄時,我想使用Facebook個人資料圖像作爲我的網站的個人資料圖像。我使用omniauth gem進行Facebook登錄。登錄後,omniauth給出了一個Hash的形式,看起來像這樣Facebook的迴應:從Facebook獲取圖像名稱image url
{
"user_info" => {
"last_name" => "..........",
"image" => "http://graph.facebook.com/100002356868026/picture?type=square",
"first_name" => "........",
"email" => "[email protected]"
},
"uid" => "..........."
}
在這裏,我可以使用request.omniauth["user_info"]["image"]
訪問圖像的URL,可以使用保存
require 'open-uri'
image_url = request.omniauth["user_info"]["image"]
image_data = open(image_url).read
File.open("image.png", "wb") { |file| file << image_data }
我想從網址獲取圖片名稱。但是,Facebook的網址不包含名稱(它是一個鏈接,重定向到另一個網址,其網址包含圖像名稱)。我如何解析url的圖像名稱?
yea ...我的擔心是我想用這個圖像作爲個人資料圖片..在一些地方,圖像正在調整大小和顯示..所以,如果我得到的圖像,我可以調整圖像大小..但我意識到這是一個壞主意..我應該在html圖像標記中使用圖像參數,並在html中指定寬度和高度。 – rubyprince
我會建議這個。 facebook提供四種不同尺寸的用戶圖像,因此您可能會獲得適當大小的圖像。在你的問題中你使用了「type = square」。而不是「方塊」,你可以使用「小」,「正常」或「大」。 – user562529