【发布时间】:2013-11-11 14:07:35
【问题描述】:
我有一个 facebook 页面,我正在尝试将一个已经托管在我的服务器上的视频上传到该页面。
我需要通过 javascript 执行此操作,而我所拥有的只是视频的 src 链接(类似于https://cdn.whodaman.net/Q45rt7y.mp4)。作为管理员,我拥有所有必需的权限 (publish_stream, manage_pages)。
facebook api 表示我必须以multipart/form-data 发送数据,这意味着视频内容。所以要通过 ajax 做到这一点,我在 stackoverflow 上关注了this question,并关注了 How to send FormData objects with Ajax-requests in jQuery。
这是我的 javascript 代码:
var fd = new FormData(); fd.append('来源', 'https://cdn.whodaman.net/Q45rt7y.mp4' ); fd.append('access_token', testaccessToken); fd.append('title', "测试视频"); $.ajax({ url: "https://graph-video.facebook.com/"+testPageId+"/videos", 数据:fd, 处理数据:假, 内容类型:假, 类型:'POST', 发送前:函数(xhr){ xhr.setRequestHeader('Content-Type', 'multipart/form-data'); } });这是请求和相应的响应:
请求标头 接受:*/* 接受编码:gzip、deflate、sdch 接受语言:en-US,en;q=0.8 缓存控制:无缓存 连接:保持活动 内容长度:948 内容类型:multipart/form-data Cookie:[一些 cookie 数据] 主持人:graph-video.facebook.com 来源:http://real.domain.com:8090 杂注:无缓存 参考:http://real.domain.com:8090/test/upload 用户代理:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 请求负载 ------WebKitFormBoundaryd8laVBo5HXRTFJnn 内容处置:表单数据;名称="来源" https://cdn.whodaman.net/Q45rt7y.mp4 ------WebKitFormBoundaryd8laVBo5HXRTFJnn 内容处置:表单数据;名称="access_token" [我的访问令牌] ------WebKitFormBoundaryd8laVBo5HXRTFJnn 内容处置:表单数据;名称=“标题” 测试视频 ------WebKitFormBoundaryd8laVBo5HXRTFJnn-- 响应标头 访问控制允许来源:* 缓存控制:无存储 连接:保持活动 内容长度:146 内容类型:应用程序/json;字符集=UTF-8 日期:2013 年 11 月 11 日星期一 13:50:45 GMT 过期时间:2000 年 1 月 1 日星期六 00:00:00 GMT 杂注:无缓存 " WWW-Authenticate:OAuth "Facebook Platform" "invalid_token" "请求此资源需要访问令牌。 X-FB-调试:HlhHF7eIBkLbUBktqeWnVv8V3viIeS8jom0WPt1D7fc= X-FB-Rev:1000997
Facebook 正在请求访问令牌!我很确定我有正确的,因为我能够添加文本状态帖子。我还尝试将表单数据中的file参数名称从source更改为file无效。
那么是否可以直接从视频网址通过 js sdk 将视频上传到 Facebook?我有一种感觉,并且非常接近解决方案。
【问题讨论】:
-
“表示视频内容” – 但您不是上传视频的内容,而只是在此处上传其 URL。对于照片,可以使用参数
url而不是source上传它们——所以我会尝试这是否也适用于视频。 (那么必须是“正常”的 POST,而不是多部分。) -
但是由于facebook没有上传视频的URL参数,这个不能做吗?我不敢相信,因为通过
input type='file'上传在技术上确实会从源流传输数据。 -
我说我会尝试,我并没有说它一定会起作用。 (照片上传的
url参数也几乎没有记录。)也许他们设计的视频上传功能主要是考虑到人们会从他们自己的设备上传的“新鲜”视频,而不是那些已经在网络上流传的东西…… -
我的视频很新鲜!只是它们已经上传到其他地方。我希望他们能尽快推出 url 参数。
-
@Atharva Johri 我有同样的问题。你解决了这个?如果你找到一些解决方案,请帮助我。
标签: javascript jquery ajax facebook facebook-graph-api