Javascript 使用facebook图形API在facebook上通过URL发布视频?
我有一个facebook页面,我正试图上传一个已经在我的服务器上托管的视频。 我需要通过javascript实现这一点,我所拥有的只是src链接(类似于Javascript 使用facebook图形API在facebook上通过URL发布视频?,javascript,jquery,ajax,facebook,facebook-graph-api,Javascript,Jquery,Ajax,Facebook,Facebook Graph Api,我有一个facebook页面,我正试图上传一个已经在我的服务器上托管的视频。 我需要通过javascript实现这一点,我所拥有的只是src链接(类似于https://cdn.whodaman.net/Q45rt7y.mp4)的视频。作为管理员,我拥有所有必需的权限(publish\u stream,manage\u page) 上面说我必须以多部分/表单数据的形式发送数据,这意味着视频内容。为了通过ajax实现这一点,我介绍了stackoverflow,并介绍了如何在jQuery中使用ajax
https://cdn.whodaman.net/Q45rt7y.mp4
)的视频。作为管理员,我拥有所有必需的权限(publish\u stream,manage\u page
)
上面说我必须以多部分/表单数据的形式发送数据,这意味着视频内容。为了通过ajax实现这一点,我介绍了stackoverflow,并介绍了如何在jQuery中使用ajax请求发送FormData对象
以下是我的javascript代码:
var fd=新FormData();
fd.append('source','https://cdn.whodaman.net/Q45rt7y.mp4' );
fd.append('access_token',testaccessToken);
fd.追加(‘标题’,‘测试视频’);
$.ajax({
url:“https://graph-video.facebook.com/“+testPageId+”/videos”,
数据:fd,
processData:false,
contentType:false,
键入:“POST”,
beforeSend:function(xhr){
setRequestHeader('Content-Type','multipart/formdata');
}
});
以下是请求和相应的响应:
请求URL:https://graph-video.facebook.com/[我的页面id]/视频
申请方式:邮寄
状态代码:400错误请求
请求头
接受:*/*
接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
缓存控制:没有缓存
连接:保持活力
内容长度:948
内容类型:多部分/表单数据
Cookie:[一些Cookie数据]
主持人:graph-video.facebook.com
来源:http://real.domain.com:8090
Pragma:没有缓存
推荐人:http://real.domain.com:8090/test/upload
用户代理:Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/30.0.1599.101 Safari/537.36
请求有效载荷
------WebKitFormBoundaryd8laVBo5HXRTFJnn
内容配置:表单数据;name=“来源”
https://cdn.whodaman.net/Q45rt7y.mp4
------WebKitFormBoundaryd8laVBo5HXRTFJnn
内容配置:表单数据;name=“访问令牌”
[我的访问令牌]
------WebKitFormBoundaryd8laVBo5HXRTFJnn
内容配置:表单数据;name=“title”
测试视频
------WebKitFormBoundaryd8laVBo5HXRTFJnn--
响应头
访问控制允许来源:*
缓存控制:没有存储
连接:保持活力
内容长度:146
内容类型:application/json;字符集=UTF-8
日期:2013年11月11日星期一格林尼治标准时间13:50:45
过期时间:2000年1月1日星期六00:00:00 GMT
Pragma:没有缓存
WWW-Authenticate:OAuth“Facebook平台”“无效的\u令牌”“请求此资源需要访问令牌。”
X-FB-Debug:HLHHF7EIBKLUBKTQEWNV8V3VIIES8JOM0WPT1D7FC=
X-FB-Rev:1000997
Facebook正在请求访问令牌!我很确定我找到了合适的,因为我可以添加一个文本状态帖子。我还尝试将表单数据中文件
参数的名称从源
更改为文件
,但没有效果
那么,甚至可以通过JSSDK直接从视频url上传视频到facebook吗?我有一种感觉是这样的,而且非常接近解决方案。使用file\u url字段对graph api执行POST请求,以指定视频的url并删除源字段,不需要多部分/表单数据。“这意味着视频内容”–但您没有上载视频内容,但这里只有它的URL。对于照片,可以使用参数url
而不是source
上传照片,所以如果这对视频也适用,我会试试。(必须是一篇“普通”的帖子,而不是多部分的。)但由于facebook没有上传视频的URL参数,这就不能做到了?我不敢相信,因为从技术上讲,通过input type='file'
上传确实是从一个源文件流式传输数据。我说过我会试试,但我没有说它一定能工作。(照片上传的url
参数也几乎没有文档记录。)也许他们设计的视频上传功能主要是为了让人们从自己的设备上传“新鲜”的视频,而不是那些已经在网上流传的东西……我的视频是新鲜的!只是他们已经上传到其他地方了。我希望他们能很快推出一个url参数。@Atharva Johri我也有同样的问题。你解决了这个问题?如果你能找到解决办法,请帮助我。我不知道是谁否决了这个答案,为什么;应该是可以接受的。你能告诉我怎么做吗?我不是网络开发者。我的Unity单机版游戏需要它。
var fd = new FormData();
fd.append( 'source', 'https://cdn.whodaman.net/Q45rt7y.mp4' );
fd.append( 'access_token', testaccessToken);
fd.append( 'title', "Test Video");
$.ajax({
url: "https://graph-video.facebook.com/"+testPageId+"/videos",
data: fd,
processData: false,
contentType: false,
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
}
});
Request URL:https://graph-video.facebook.com/[my page id]/videos
Request Method:POST
Status Code:400 Bad Request
Request Headers
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:948
Content-Type:multipart/form-data
Cookie: [some cookie data]
Host:graph-video.facebook.com
Origin:http://real.domain.com:8090
Pragma:no-cache
Referer:http://real.domain.com:8090/test/upload
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Request Payload
------WebKitFormBoundaryd8laVBo5HXRTFJnn
Content-Disposition: form-data; name="source"
https://cdn.whodaman.net/Q45rt7y.mp4
------WebKitFormBoundaryd8laVBo5HXRTFJnn
Content-Disposition: form-data; name="access_token"
[my access token]
------WebKitFormBoundaryd8laVBo5HXRTFJnn
Content-Disposition: form-data; name="title"
Test Video
------WebKitFormBoundaryd8laVBo5HXRTFJnn--
Response Headers
Access-Control-Allow-Origin:*
Cache-Control:no-store
Connection:keep-alive
Content-Length:146
Content-Type:application/json; charset=UTF-8
Date:Mon, 11 Nov 2013 13:50:45 GMT
Expires:Sat, 01 Jan 2000 00:00:00 GMT
Pragma:no-cache
WWW-Authenticate:OAuth "Facebook Platform" "invalid_token" "An access token is required to request this resource."
X-FB-Debug:HlhHF7eIBkLbUBktqeWnVv8V3viIeS8jom0WPt1D7fc=
X-FB-Rev:1000997