使用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)。