2016-10-06 154 views
0

我試圖上傳一個使用Facebook SDK和圖表API的視頻Facebook SDK for Android:無法上傳視頻

這是我得到一個有效的身份驗證令牌後。

Bundle params = new Bundle(); 
    params.putString("source", AssetsUtils.getExportMoviePath(this)); ///data/user/0/com.bundlecomp.appname/files/export.mp4 
    params.putString("name", "TestName"); 
    params.putString("title", "TestTitle"); 
    params.putString("filename", "export.mp4"); 
    params.putString("description", "Created with http://wwww.test.tu"); 
    Log.d(TAG, "Posting on user wall"); 
    new GraphRequest(
      AccessToken.getCurrentAccessToken(), 
      "me/videos", 
      params, 
      HttpMethod.POST, 
      new GraphRequest.Callback() { 
       public void onCompleted(GraphResponse response) { 
        Log.d(TAG, "GOT response from facebook. Error : " + response.getRawResponse()); 
        Log.d(TAG, "GOT response from facebook. Error : " + response.getError()); 
        Log.d(TAG, "GOT response from facebook. Resp : " + response); 

        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          finish(); 
          Log.d(TAG, "Posted"); 

         } 
        }); 
       } 
      } 
    ).executeAsync(); 

不過,我得到以下錯誤:

{ Response: responseCode: 400, graphObject: null, error: {
HttpStatus: 400, errorCode: 390, errorType: OAuthException,
errorMessage: There was a problem uploading your video file. Please try again. } }

我在做什麼錯?

+0

外貌喜歡我的來源應該是數據而不是路徑... – Antzi

回答

1

下面是我用什麼:

Bundle params = new Bundle(); 
    try { 
     params.putByteArray("video.mp4", Files.toByteArray(new File(AssetsUtils.getExportMoviePath(this)))); 
    } catch (IOException pE) { 
     pE.printStackTrace(); 
    } 
    params.putString("name", "TestName"); 
    params.putString("title", "TestTitle"); 
    params.putString("filename", "video.mp4"); 
    params.putString("description", "Created with http://wwww.test.tu"); 
    Log.d(TAG, "Posting on user wall"); 
    new GraphRequest(
      AccessToken.getCurrentAccessToken(), 
      "me/videos", 
      params, 
      HttpMethod.POST, 
      new GraphRequest.Callback() { 
       public void onCompleted(GraphResponse response) { 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          finish(); 
          Log.d(TAG, "Posted"); 

         } 
        }); 
       } 
      } 
    ).executeAsync();