2016-07-26 28 views
0

我設置了一些代碼,可根據用戶在我網站上的統計信息生成圖像,並將其嵌入到發送給他們的電子郵件中。我想添加人們將此圖片上傳到Facebook的選項,但我在理解最佳方式(如果有)時遇到問題。將圖像從電子郵件上傳到Facebook

我的代碼使用PHP GD圖像庫來提取統計信息,創建圖像並將文件保存到服務器。我還設置了一個cron作業來每天清空圖像文件夾,因爲我打算讓這些圖像僅在需要查看時才存在,因爲打開電子郵件將再次創建圖像。

我意識到我可以將PHP生成的圖像發送到下面的Facebook分享器網址。

http://facebook.com/sharer/sharer.php?u=http://example.com/image.png 

我遇到的問題是,它共享圖像url,而不是將圖像上傳到Facebook。由於服務器每天都會被擦除,因此網址並不一致,並且在共享後一天內無法訪問。

我看到有些選項,如使用Graph API via a url,但我不確定這是否可以通過電子郵件單獨設置。我的電子郵件客戶端似乎只允許使用HTML,因此我可以使用的選項有限。它似乎也需要用戶許可才能要求某人上傳單個圖像。

允許用戶將圖片從他們的電子郵件上傳到Facebook用於分享目的的最佳方式是什麼?

+0

如果您只是希望用戶能夠共享而無需登錄您的應用併爲其提供額外的權限,那麼最簡單的方法就是讓他們共享鏈接,通過Open Graph元標記嵌入圖像。這可以都是動態的 - 根據傳遞給它的GET參數輸出OG元數據的腳本,以及圖像創建(只要相同的圖像URL總是返回適當的圖像,無論是否是保存在服務器上還是每次都可以在飛行中創建) – CBroe

+0

該圖像是通過電子郵件中的隨機網址生成的,因此無法預先告知它。我可以將創建的圖像發送到腳本以生成OG元,並將其用於最初的Facebook上傳,但是一旦圖像被刪除,圖像就不再工作了嗎?例如,如果他們要在第二天再次使用該圖片,則不會再有指向任何內容的網址。 Facebook是否緩存og圖像以防止這種情況發生,或者是否將圖像上傳並使其始終顯示,無論它是否仍然存在? – cul8r

+0

在某些時候,您必須創建圖片網址,否?電子郵件不會奇蹟般地改變他們的內容。如果它被刪除有什麼關係 - 正如你所說,在郵件中查看它會再次創建它,不是嗎? // Facebook確實在自己的CDN上創建了該圖片的副本;但他們會定期重新掃描每個物體,如果您的圖像在這種情況發生時「丟失」,那麼就沒有任何一個能夠處理這個問題的人了。 – CBroe

回答

1

這將照片上傳到個人資料的正確方法:https://developers.facebook.com/docs/graph-api/reference/user/photos/#Creating

當然,你需要授權與publish_actions這個用戶。

+0

是否有可能在不知道配置文件的user_id的情況下使用它? – cul8r

+0

不確定你的意思,你必須爲此用戶授權publish_actions。用戶標識無關緊要,您可以使用/ me/photos端點發布照片。但是如果你願意,你可以很容易地在授權後獲得用戶ID。 – luschn

+0

好吧,我看到我需要用於我的http請求的URL如下所示:https://graph.facebook.com/me/photos?url=URL&access_token=TOKEN。我如何設置POST請求,是否可以通過url發送? – cul8r