使用Grails中的HTTPBuilder通过Post发送文件

时间:2012-01-19 11:40:50

标签: facebook http grails post httpbuilder

我正在开发一个Facebook应用程序,我想将一个视频文件从myServer发送到Facebbok用户的时间线。这是包含解释http://developers.facebook.com/blog/post/515/#video_upload的页面,但它是一个PHP代码。

我的应用程序在Grails上,我正在查看HTTBuilder类,但无法找到一种方法来执行此操作。 有人知道怎么做吗?

如果使用HTTPBuilder无法做到这一点,在我的应用中,我正在使用Spring Social Facebook Plugin on Grais 我找到了界面MediaOperations,但我不知道如何使用此界面并使用postVideo方法上传视频。

谢谢!

1 个答案:

答案 0 :(得分:1)

会尽力帮助。您可以使用MediaOperations接口进行此操作。 Spring Social Facebook插件为您配置名为Facebook的服务。您可以通过依赖注入使用它。

这是一个简单的代码示例:

import org.springframework.social.facebook.api.Facebook

class FacebookService {
    Facebook facebook

    def uploadVideo(String videoFileName, String title, String description) {
         try {
             def videoResource = new FileSystemResource(videoFileName)
             facebook.mediaOperations().postVideo(videoResource, title, description) 
             return true
         } 
         catch (Exception e) {
             log.error("Error to upload video to facebook", e)
              return false
         }
    }
}

视频是通过videoFileName变量中指定的文件路径/名称从FS中的文件加载的。这意味着,用户需要先上传视频,然后代码应先将其保存到FS中的某个文件中,然后再上传。通常这是最好的情况,因为视频文件很大。也许有一种感觉可以在单独的线程中将视频上传到Facebook,并且不会让用户等待。