使用RoR,FbGraph Gem和S3将照片发布到Heroku的Facebook Open Graph

我试图允许用户在他的Facebook墙上分享照片。 我使用Paperclip将所有应用程序的照片存储在S3上。 因此,在下面的示例中,@ photo.image.url是我要在some_album中发布的图像的S3url。 使用fb_graph gem,这在localhost上相对容易。 在我的控制器中,我有:

the_photo = open(@photo.image.url) some_album.photo!( :access_token => access_token, :source => the_photo ) 

local_photo在localhost上的类是“Tempfile”。

在heroku上,事情变得棘手。 使用相同的代码两个(看似相关)的事情发生。 首先,the_photo是类类型“stringIO”。 第二,当FbGraph发布到Facebook时,我收到以下错误:

 FbGraph::InvalidRequest (OAuthException :: (#324) Requires upload file): 

下面是一些可能有帮助的事实要点:

  • Heroku是一个只读系统,但显然你可以写入Tempfile
  • 我在Rails 3.1.0上
  • Ruby 1.9.2
  • Heroku Stack Bamboo-Miri

任何帮助/想法/工作/问题将不胜感激。

我不知道为什么会这样做但这对我有用:

 some_album.photo!( :access_token => access_token, :source => open(@photo.image.url) ) 

而不是设置变量photo_response = open(@ photo.image.url)。