Search code examples
androidfacebookpublish-actions

Upload video to fb not work from android app


I am trying to upload video to facebook from my android app with following code-

    String dataPath = videoPath;
    File mFile = new File(videoPath);
        if(nDialog==null){
            nDialog = new ProgressDialog(mContext);
        }
        if(!nDialog.isShowing()){
            nDialog.setMessage("Posting to your wall...");
            nDialog.setCancelable(false);
            nDialog.show();
        }
        Request.newUploadVideoRequest(session, mFile,new Request.Callback() {
            @Override
            public void onCompleted(Response response) {
                Toast.makeText(mContext,"response"+response,Toast.LENGTH_LONG).show();
                Log.i("Upload video test0",response.toString());
                nDialog.dismiss();
            }
        });

but problem is that onCompleted method never got called. I have also try other code but that was also not working.Please check Link also. Thanks in advance.

Edit:

When i call newUploadVideoRequest method,facebook session has following value -

{Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, email, contact_email, publish_actions]}, appId:xxxxxxxxxxxxxxxxx}

Edit: OnActivity Result:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);

}

I have try this link but onCompleted methos returns - oauthexception code 2500,OAuthException : An active access token must be require


Solution

  • You need the publish_actions permission in order to upload a video.

    You're also only creating a request, but never executing it. You need to add executeAsync() to your code:

     Request.newUploadVideoRequest(session, mFile,new Request.Callback() {
         @Override
         public void onCompleted(Response response) {
             Toast.makeText(mContext,"response"+response,Toast.LENGTH_LONG).show();
             Log.i("Upload video test0",response.toString());
             nDialog.dismiss();
         }
     }).executeAsync();