Facebook graph api 尝试使用graph api上载视频

Facebook graph api 尝试使用graph api上载视频,facebook-graph-api,Facebook Graph Api,我已经尝试为我的移动应用程序实现一个视频上传facebook功能有一段时间了,但在rest上从未真正成功过。我昨天得知,图形替代方案是可用的 在获得了一些与access key有关的错误之后,我已经达到了这样的地步:输出流成功地写入了电影文件,而输入流在我写入3gp文件后只接收到一个空json数组 有人知道为什么我会得到一个空的json数组,当我运行所有的代码,得到200个响应代码,服务器向我发送一个非错误响应时,没有视频被发布吗 非常感谢您的帮助 这里是获得空白JSON数组(发送方法)的类。我

我已经尝试为我的移动应用程序实现一个视频上传facebook功能有一段时间了,但在rest上从未真正成功过。我昨天得知,图形替代方案是可用的

在获得了一些与access key有关的错误之后,我已经达到了这样的地步:输出流成功地写入了电影文件,而输入流在我写入3gp文件后只接收到一个空json数组

有人知道为什么我会得到一个空的json数组,当我运行所有的代码,得到200个响应代码,服务器向我发送一个非错误响应时,没有视频被发布吗

非常感谢您的帮助

这里是获得空白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”
的末尾有一个分号。您确定应该有吗?