Facebook graph api 尝试使用graph api上载视频
我已经尝试为我的移动应用程序实现一个视频上传facebook功能有一段时间了,但在rest上从未真正成功过。我昨天得知,图形替代方案是可用的 在获得了一些与access key有关的错误之后,我已经达到了这样的地步:输出流成功地写入了电影文件,而输入流在我写入3gp文件后只接收到一个空json数组 有人知道为什么我会得到一个空的json数组,当我运行所有的代码,得到200个响应代码,服务器向我发送一个非错误响应时,没有视频被发布吗 非常感谢您的帮助Facebook graph api 尝试使用graph api上载视频,facebook-graph-api,Facebook Graph Api,我已经尝试为我的移动应用程序实现一个视频上传facebook功能有一段时间了,但在rest上从未真正成功过。我昨天得知,图形替代方案是可用的 在获得了一些与access key有关的错误之后,我已经达到了这样的地步:输出流成功地写入了电影文件,而输入流在我写入3gp文件后只接收到一个空json数组 有人知道为什么我会得到一个空的json数组,当我运行所有的代码,得到200个响应代码,服务器向我发送一个非错误响应时,没有视频被发布吗 非常感谢您的帮助 这里是获得空白JSON数组(发送方法)的类。我
这里是获得空白JSON数组(发送方法)的类。我已经将令牌附加到url和表中以确保。我很抱歉,如果代码不整洁,但这只是一个尝试和错误的一天
导入java.io.ByteArrayOutputStream; 导入java.io.InputStream; 导入java.io.OutputStream; 导入java.util.Enumeration; 导入java.util.Hashtable; 导入javax.microedition.io.Connector; 导入javax.microedition.io.HttpConnection; 导入net.rim.device.api.io.http.HttpProtocolConstants 公共类HttpMultipartRequest2 { 静态最终字符串边界=“V2ymHFg03ehbqgZCaKO6jy”; byte[]postBytes=null; 字符串url=null; 哈希表参数稳定public HttpMultipartRequest2(String url, Hashtable params,
String fileField, String fileName, String fileType, byte[] fileBytes) throws Exception
{
this.url = url;
String boundary = getBoundaryString();
paramsTable = params;
String boundaryMessage = getBoundaryMessage(boundary, params, fileField, fileName, fileType);
String endBoundary = "\r\n--" + boundary + "--\r\n";
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.write(boundaryMessage.getBytes());
bos.write(fileBytes);
bos.write(endBoundary.getBytes());
this.postBytes = bos.toByteArray();
bos.close();
}
String getBoundaryString() {
return BOUNDARY;
}
String getBoundaryMessage(String boundary, Hashtable params, String fileField, String fileName, String fileType)
{
StringBuffer res = new StringBuffer("--").append(boundary).append("\r\n");
Enumeration keys = params.keys();
while(keys.hasMoreElements())
{
String key = (String)keys.nextElement();
String value = (String)params.get(key);
res.append("Content-Disposition: form-data; name=\"").append(key).append("\"\r\n")
.append("\r\n").append(value).append("\r\n")
.append("--").append(boundary).append("\r\n");
}
res.append("Content-Disposition: form-data; name=\"").append(fileField)
.append("\"; filename=\"").append(fileName).append("\"\r\n")
.append("Content-Type: ").append(fileType).append("\r\n\r\n");
Log.info(("res "+res.toString()));
return res.toString();
}
public String send() throws Exception
{
StringBuffer sb = new StringBuffer();
HttpConnection hc = null;
InputStream is = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] res = null;
try
{
Log.info("before hc open"+ url);
hc = (HttpConnection) Connector.open(url);
hc.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + getBoundaryString());
hc.setRequestProperty("access_token", (String)paramsTable.get("access_token"));
hc.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, String.valueOf(postBytes.length));
hc.setRequestProperty( "x-rim-transcode-content", "none" );
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStream dos = hc.openOutputStream();
is = hc.openInputStream();
Log.info("before dos write responsecode");// + hc.getResponseCode());
out.write(postBytes, 0, postBytes.length);
//Log.info("flushing"+ hc.getResponseCode());
Log.info("after doswrite responsecode");
dos.write(out.toByteArray());
dos.flush();
Log.info("after flush");
if(dos!=null)
dos.close();
int ch;
Log.info("before openinput ");
Log.info("after openinput ");
while ((ch = is.read()) != -1)
{
bos.write(ch);
sb.append((char)ch);
Log.info("char"+(char)ch);
}
res = bos.toByteArray();
Log.info("Response recieved from Server is : " + sb.toString() );
}
catch(Exception e)
{
Log.info(hc.getResponseCode() + "sexce"+e);
}
catch(OutOfMemoryError error)
{
Log.info("outofmemory " + error);
System.gc();
}
finally
{
try
{
if(bos != null)
bos.close();
if(is != null)
is.close();
if(hc != null)
hc.close();
}
catch(Exception e2)
{
Log.info("finally exception"+ e2);
}
}
return sb.toString();
}
}您是想上传到用户的提要还是页面?有一个关于发布到页面的问题 另外,你能发一些代码吗 假设您已经阅读了文档:
你使用的是
graph video.facebook.com
,而不是graph.facebook.com
,,我只是想贴到用户墙上。我正在使用图形视频url。我已经在graph api中多次阅读视频上传文档,但仍然得到一个空白json数组。我如何在这里发布代码?它告诉我我还有零下3000个字符。谢谢你的帮助。我刚刚尝试了Facebook文档中的PHP示例,效果很好。我在图中得到了带有新对象id的json:{“id”:“10150196443143217”}
我不是java专家,但乍一看代码没有任何错误。但是,您传递的url非常重要。你能分享一下吗?嗨,我只是这样调用api。。字符串url=“”+”?description=testdesc&title=testtitle&access_-token=“+app.fbc.graph.getAccessToken()+getConnectionProfile();两个建议。首先,我看不到在Connector.open(url)
中声明Connector
的位置。我怀疑您正在使用http而不是https。第二,在深入编写代码之前,请使用类似于curl
或的方法使URL正常工作。还注意到在../videos”
的末尾有一个分号。您确定应该有吗?