You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Facebook Graph API分享设备视频URL遇问题求助

解决Facebook Graph API分享视频URL的常见问题及方案

我来帮你排查下使用这段Graph API代码时可能遇到的问题,给你几个针对性的解决方案:

一、核心参数与权限检查

  • 权限缺失:确保你的Access Token拥有publish_video(个人账号分享)或pages_publish_video(分享到主页)权限,同时user_videos权限也得勾选。注意要用用户授予的长期有效Token,测试用的短期Token很容易失效,你可以在Graph Explorer里先验证权限是否正确配置。
  • 视频URL合法性:file_url必须是公开可直接访问的视频文件链接(比如后缀为.mp4、.mov的直接文件地址),不能是网页链接、带跳转的URL或者需要登录才能访问的地址。你可以先在浏览器里打开这个URL,确认能直接下载播放,否则Facebook服务器抓不到文件。
  • JSON构造错误:手动拼接JSON字符串容易出现语法问题,建议用安全的方式构建参数:
    JSONObject params = new JSONObject();
    try {
        params.put("file_url", "你的公开视频文件URL");
        params.put("description", "Android upload");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    

二、请求执行与错误排查

  • 别忘了发送请求:你这段代码只创建了GraphRequest对象,但没有调用request.executeAsync()来发送请求!这是很多人容易忽略的关键步骤,一定要在创建完request后加上这行代码。
  • 捕获详细错误信息:在回调里打印完整的响应错误,能快速定位问题:
    @Override
    public void onCompleted(GraphResponse response) {
        if (response.getError() != null) {
            Log.e("FBVideoUpload", "错误信息: " + response.getError().getErrorMessage());
            Log.e("FBVideoUpload", "错误代码: " + response.getError().getErrorCode());
        } else {
            Log.d("FBVideoUpload", "上传成功,返回数据: " + response.getRawResponse());
        }
    }
    
    比如错误码100代表参数错误,200代表权限不足,根据提示就能精准修复。

三、其他注意事项

  • 视频规格限制:Facebook对上传视频有大小(最大10GB)和格式(支持MP4、MOV等)要求,确保你的视频符合规范。
  • 网络环境:如果在国内环境,需要确保设备能正常访问Facebook服务器,否则请求会超时或失败。

修正后的完整代码

AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest request = null;
try {
    JSONObject params = new JSONObject();
    params.put("file_url", "https://example.com/your-video-file.mp4");
    params.put("description", "Android upload");

    request = GraphRequest.newPostRequest(
            token, "/me/videos",
            params,
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    if (response.getError() != null) {
                        Log.e("FBVideoUpload", "上传失败: " + response.getError().getErrorMessage());
                    } else {
                        Log.d("FBVideoUpload", "上传成功!视频ID: " + response.getJSONObject().optString("id"));
                    }
                }
            });
    // 必须执行这行才会发送请求
    request.executeAsync();
} catch (JSONException e) {
    e.printStackTrace();
}

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:19:36