2016-01-03 62 views
14

我正在開發一個應用程序,它使用Facebook登錄。登錄後,用戶必須設置其他信息和個人資料圖片,圖片也是從登錄Facebook帳戶中提供的。現在整個帳戶的詳細信息,包括該個人資料圖片的網址,都保存在我的數據庫中。Facebook應用程序登錄:如何控制我得到的圖像URL的到期日期?

令我驚訝的是,個人資料圖片突然停止了工作。打開它在瀏覽器的網址給了我這個消息「URL簽名過期」

https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/p720x720/10846350_10204966809307370_2779189783437306470_n.jpg?oh=245bbada6c23f280a1e531e724be85ed&oe=56894D69

下載這些照片,並將它們保存到自己的服務器是不是真的我的選擇。有什麼我可以做的,使該網址持久?

回答

31

是的,Facebook的CDN網址可能會過期 - 您不應該將它們存儲以供長期使用。

但是你可以要求任何用戶的資料圖片(只要你有他們的全球/應用範圍的用戶ID),通過簡單地參照

https://graph.facebook.com/4/picture // Mark Zuckerberg’s profile pic 

- 即URL發出重定向到當前CDN網址爲圖像。

雖然圖像比較小,但是50px x 50px - 您可以使用https://graph.facebook.com/4/picture?type=large來請求更大的版本。這將爲您提供200像素x 200像素的配置文件圖像(如果用戶沒有上傳方形圖像,則會提供該配置文件圖像。)

請注意,某些圖片需要檢索訪問令牌。例如https://graph.facebook.com/72256131540/picture 返回一個問號的通用圖像,除非你添加一個訪問令牌是這樣的:

https://graph.facebook.com/72256131540/picture?access_token=<ACCESS_TOKEN> 
+0

不幸的是我並不想獲得用戶的當前配置文件中的圖片,但它也可以是其他任何一個。不管怎麼說,還是要謝謝你。 –

+0

然後下載並將它們存儲在您自己的服務器上,或通過瀏覽用戶的個人資料圖片專輯獲取新的CDN網址(當然,需要獲得許可)。 – CBroe

+0

CBroe,您是否有想法其他提供者有類似之處。我問小學的谷歌,Instagram和VKontakte – user732456

相關問題