0

我使用facebook sdk 3.6在facebook上傳了視頻。我成功上傳了這些視頻,但我想在上傳文件的同時分享位置信息。怎麼做?android facebook facebook - 分享位置,同時上傳視頻文件

我正在使用以下代碼上傳視頻文件。我試過但我沒有得到。請任何人都可以幫我解決這個問題。

try { 
    Request videoRequest = Request 
     .newUploadVideoRequest(session, 
      file, 
      new Request.Callback() { 
       @Override 
       public void onCompleted(
        Response response) { 
         if (response 
          .getError() == null) { 
          Toast.makeText(
           AndroidCamera.this, 
           "video shared successfully", 
           Toast.LENGTH_SHORT).show(); 
         } else { 
          Toast.makeText(
           AndroidCamera.this, 
           response.getError().getErrorMessage(), 
           Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }); 

    Bundle parameters = videoRequest.getParameters(); 
    parameters.putString("caption", 
      "Video"); 
    if (Nim_Constants.bUseLocation) { 
     parameters.putString("name", 
       Nim_Constants.Location); 
    } 
    parameters 
      .putString("link", 
        "https://developers.facebook.com/android"); 
    videoRequest.setParameters(parameters); 
    // Execute the request in a separate thread 
    videoRequest.executeAsync(); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

回答

0

最後我找到了解決辦法。這很簡單。使用Request類而不是使用newUploadVideoRequest()方法,因爲它不允許傳遞像title,description這樣的參數。因此,如果您想設置標題,描述,請使用Request類。爲此,只需將文件傳遞爲ParcelFileDescriptor並傳遞位置(您必須傳遞的)作爲描述。

Upload Video on Facebook 

File file = new File(filepath); 嘗試{

ParcelFileDescriptor descriptor = ParcelFileDescriptor.open(file,ParcelFileDescriptor.MODE_READ_ONLY); 
Bundle parameters = new Bundle(); 
parameters.putParcelable(file.getName(),descriptor); 
parameters.putString("description","Location"); 

Request videoRequest = new Request(session,"me/videos", parameters,HttpMethod.POST, 
            new Request.Callback() { 

              @Override 
              public void onCompleted(
                Response response) { 

               if (response.getError() == null) { 
                Toast.makeText(
                  AndroidCamera.this, 
                  "video shared successfully", 
                  Toast.LENGTH_SHORT) 
                  .show(); 
               } else { 
                System.out 
                  .println(response 
                    .getError() 
                    .getErrorMessage()); 
                Toast.makeText(
                  AndroidCamera.this, 
                  response.getError() 
                    .getErrorMessage(), 
                  Toast.LENGTH_SHORT) 
                  .show(); 
               } 
              } 
             }); 
// Execute the request in a separate thread 
videoRequest.executeAsync(); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
}