如何使用Facebook Graph API发布到墙上时共享亚马逊经过身份验证的URL?

And*_*nih 5 facebook amazon-s3 amazon-web-services facebook-graph-api

我正在尝试使用Facebook Graph API创建Facebook墙贴.有效载荷是:

{ :message => 'I just uploaded image',
  :picture => 'http://s3.amazonaws.com/picyou-andrey-development/images/GejoFV/GejoFV.png?AWSAccessKeyId=AKIAI6ANFCV7RKOBGGBA&Signature=U0Bd2bMQ3Pai%2BAblVOimSOVcbzk%3D&Expires=1308771841',
  :link    => 'http://google.com',
  :name    => 'Test Post' }
Run Code Online (Sandbox Code Playgroud)

帖子是正确创建的,但图片中的问题根本没有显示.

当我使用公共Amazon S3 URL时,如http://s3.amazonaws.com/picyou-andrey-development/images/GejoFV/GejoFV.png图片显示正确.

有没有机会使用动态URL作为Facebook的"图片"参数?

提前致谢.

更新:

在Facebook开发者论坛上发现了一个有完全相同问题的人:

http://forum.developers.facebook.net/viewtopic.php?pid=302856

Geo*_*ord 1

url 的签名部分是否有一些在 urls - %2B (+)and中具有特殊含义的字符%3D (=)

我在某些视频播放器中遇到了这些 url 的问题,并通过确保 url 不包含任何这些字符来解决该问题。您可以通过循环生成 url 并每次在到期时间上添加一秒来确保签名发生变化来实现此目的。重复直到签名“有效”

伪代码:

loop
    expiry = expiry + 1 second
    create url with expiry
until url is valid
Run Code Online (Sandbox Code Playgroud)

根据我的经验,只需一两次迭代即可使 url 有效。