Facebook sdk的RequestAsyncTask无法在android中发布视频
{HttpStatus:500,错误代码:352,错误类型:FacebookApiException, errorMessage:抱歉,您选择的视频文件的格式不正确 我们不支持 我不知道我做错了什么,但每次我都犯了这个错误。是否有其他方法将视频发布到facebook墙。 我知道如何通过电子邮件发送视频 newUploadVideoRequest方法,但就我而言,我不想下载视频并将其保存到sd卡,然后发布到facebook。 还有另外一种方法,我可以调用graph api url并将视频发布到facebook的墙上,但是 是否有其他方法可以让我直接将视频发布到facebook墙,我几乎引用了我刚刚更改的每个链接 请求参数putByteArray(“视频”,数据)到 requestParams.putByteArray(“video.3gp”,数据)强> 它上传成功,你可以试试。mp4也很奇怪,但是没有关于应该传递什么参数的有用文档。希望这是有帮助的Facebook sdk的RequestAsyncTask无法在android中发布视频,android,facebook,facebook-graph-api,facebook-sdk-3.1,Android,Facebook,Facebook Graph Api,Facebook Sdk 3.1,{HttpStatus:500,错误代码:352,错误类型:FacebookApiException, errorMessage:抱歉,您选择的视频文件的格式不正确 我们不支持 我不知道我做错了什么,但每次我都犯了这个错误。是否有其他方法将视频发布到facebook墙。 我知道如何通过电子邮件发送视频 newUploadVideoRequest方法,但就我而言,我不想下载视频并将其保存到sd卡,然后发布到facebook。 还有另外一种方法,我可以调用graph api url并将视频发布到fa
{
Request request = null;
RequestAsyncTask task = null ;
Bundle requestParams requestParams=new Bundle();
byte[] data = downloadUrl(new URL("urltodownload"));
requestParams.putByteArray("video", data);
requestParams.putString("title", "Video post");
requestParams.putString("description", " #SomeTag");
request = new Request(Session.getActiveSession(),"me/videos" , requestParams,
HttpMethod.POST,new Request.Callback() {
@Override
public void onCompleted(Response response) {
//appLink=null;
if (response.getError() == null) {
Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish success");
if (uploadListener != null) {
uploadListener.onSuccess(null);
}
} else {
Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
+ response.getError().getErrorMessage());
Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
+ response.getError().toString());
if (uploadListener != null) {
uploadListener
.onError("Facebook can't publish your content");
}
}
}
});
task = new RequestAsyncTask(request);
task.execute();
}
private static byte[] downloadUrl(URL toDownload) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
byte[] chunk = new byte[4096];
int bytesRead;
InputStream stream = toDownload.openStream();
while ((bytesRead = stream.read(chunk)) > 0) {
outputStream.write(chunk, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
return outputStream.toByteArray();
}