0

我正在使用grails facebook-sdk插件来连接并发布到Facebook。如何使用Grails将图像发布到Facebook墙上

要发布一条消息到用户的墙壁我用:

def publishMessageResponse = facebookClient.publish("me/feed", [message:"RestFB test"]) 

这工作得很好,但我想的图像发布到用户的特定相册。该文件说,它应该与:

def publishPhotoResponse = facebookClient.publishFile("me/photos", [message, "Test cat"], "/cat.png") 

但我一直得到“文件未找到”的错误。我拥有的图像存储在数据库中,可以通过获取图像的URL来检索。

了解图像的网址,我该如何将此图像发布到特定用户相册?我如何创建一个新的专辑?

回答

0

我还没有使用facebook-sdk,但我认为问题在于它无法找到相对于您项目位置的文件'/cat.png'。您需要提供有效且可访问的文件路径。

您可以通过publishFile之前做这样的事情证实了这一点......

assert new File("/cat.png").exists(), "File does not exist!" 

UPDATE:

这里是一个URL转换为文件的例子。 如果除了使用实际文件之外还有其他选项,这可能不是理想的解决方案

def someUrl = "http://www.google.com/images/logo.gif"; 
    def file = File.createTempFile("facebookUpload",".temp").withOutputStream { out -> 
     out << new URL(someUrl).openStream() 
    } 

    file.deleteOnExit(); 
    def publishPhotoResponse = facebookClient.publishFile("me/photos", [message, "Test cat"], file) 
+0

我有一个像这样的图像的网址:http://www.mydomain.com/234234如果我在浏览器中输入它显示图像。但是,我怎样才能将文件转换为文件,使得publish()方法可以接受它? – confile

+0

我更新了我的答案。再次,请记住我没有使用fb-sdk,这是未经测试的代码。 –

+0

这并不能真正解决我的问题。我想知道如何将图像发布到用户的Facebook墙和Grails中的用户专辑? – confile

相关问题