1

我正在使用提要對話框,並且我正在嘗試使用的圖片未顯示。該對話框出現正確的描述和標題,但沒有圖片。Facebook Feed對話框不顯示圖片

這裏是我的javascript:

FB.ui(
    { 
    method: 'feed', 
    name: message, 
    description: "...", 
    caption: "...", 
    link: "http://our_domain.com", 
    picture: "https://picture_stored_on_aws" 
    }, 
    (response) -> 
    window.close() 
) 

但是,它的工作原理,當我在其他地方使用存儲,像Facebook的開發站點此示例圖片:「http://fbrell.com/f8.jpg」。

我試着刪除https,仍然沒有圖片。任何人都遇到過這個問題?它是否與在aws上引用圖片有關?

+0

您可以將原始文件夾中的樣本文件的URL放在同一個S3存儲桶中嗎?原始文件是否存在於S3中? – j0nes

+0

是的。這裏是:https://rendezgroup-dev.s3.amazonaws.com/uploads/event/image/52/thumb_pic.jpg?AWSAccessKeyId=AKIAJN5OQTDUW77YKBMQ&Signature=h7PkBVTb5of8J8DvlWPGZGyGqJI%3D&Expires=1350549902。 –

+0

所以它看起來像這個網址有一個到期。其中一個參數是'過期'。我想知道這與它有什麼關係。有沒有辦法從s3中獲取圖像而沒有過期? –

回答

1

如你發現,則在S3中接收的鏈路具有過期,因爲該文件不可用於公衆,只爲您自己的帳戶。您必須公開您的圖片才能在Facebook Feed對話框中使用它。

登錄AWS控制檯,轉到S3,找到並單擊要使用的文件,單擊右上角的「屬性」按鈕。您將在頁面底部看到一個窗口。點擊「權限」選項卡,確保「每個人」都有「打開/下載」權限。當您切換回「詳細信息」選項卡時,您將看到一個公開的鏈接。有了這個圖片鏈接,圖片也應該顯示在你的Facebook Feed對話框中。

+0

我這樣做了,但它仍然沒有工作,因爲從S3中獲取圖像仍然給了我的圖像的URL與到期。爲了使它起作用,我解析了url以擺脫所有參數('?'之後的所有內容,包括過期以及訪問密鑰和簽名)。該圖像是公開的,所以不再需要參數,但它們阻止將圖片加載到Facebook提要對話框中。 –

1

這可能是使用的HTTPS,測試與HTTP陣列圖像URL

FB.ui(
    { 
    method: 'feed', 
    name: message, 
    description: "...", 
    caption: "...", 
    link: "http://our_domain.com", 
    picture: "http://picture_stored_on_aws" 
    }, 
    (response) -> 
    window.close() 
) 
+0

我試過了,它仍然沒有顯示。 –

1

我遇到了與使用S3Boto後端的Django存儲完全相同的問題。有什麼解決的,如果我是刪除所有GET參數,因此,如果您原來的產生S3鏈接是:

https://[your account].s3.amazonaws.com/yourpic.jpg?Signature=[...]&Expires=[...]&AWSAccessKeyId=[...]

您需要將其解析到:

https://[your account].s3.amazonaws.com/yourpic.jpg

這爲我工作,我希望它能幫助別人。