2014-02-12 147 views
0

我知道這是一個頻繁的問題,所以請原諒我再次提問(這實在不是缺乏研究),我似乎無法找到一種方法來使Facebook配置文件圖片加載使用Allauth。Allauth Facebook的個人資料圖片未載入

我已經使用http://www.sarahhagstrom.com/2013/09/the-missing-django-allauth-tutorial/的一些提示,他們都運行良好,但對於Facebook的個人資料圖片似乎缺少的東西,models.py上的代碼負責通過Facebook的個人資料圖片URL無法獲得Facebook的用戶標識

在下面的代碼...

 http://graph.facebook.com/{}/picture?width=40&height=40 

...我試着使用fb_uid和user_ID的,但仍然無法加載。

的個人資料網址正在呼籲模板:

 {% if request.user.is_authenticated %} 
      <img src="{{ request.user.profile.profile_image_url }}"/> 
     {% endif %} 

這裏How can I get the user's facebook id with django-allauth?通過Pennersr建議也沒有給我訪問的用戶ID。

謝謝

回答

0

Facebook的API不允許對圖像的直接訪問,您必須編寫代碼來下載來自Facebook的個人主頁URL到您的服務器的響應,並使用您的圖像的副本。

上面的代碼給你的網址,其Facebook的重定向到他們的存儲,所以使用

url = "http://graph.facebook.com/%s/picture?type=large" % response['id'] 
avatar = urlopen(url) 
profile = user.get_profile() 
profile.profile_photo.save(slugify(user.username + " social") + '.jpg', 
         ContentFile(avatar.read()))    
profile.save() 

但是不推薦使用此方法,因爲它會在響應誤事,有的建議芹菜後臺任務下載圖像,所以也看看。

相關問題