0

In my app you can share the video you have just taken. I want to get the link to the video back to android so i can call another function that will input the link in the database. So basically i need to know how to get a link from video i just shared. I am using the following code.

                 String path;
                     //get the current active facebook session
                     Session session = Session.getActiveSession();
                     //If the session is open
                     if(session.isOpened()) {
                         //Get the list of permissions associated with the session
                         List<String> permissions = session.getPermissions();
                         //if the session does not have video_upload permission
                         if(!permissions.contains("video_upload")) {
                             //Get the permission from user to upload the video to facebook
                             Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(Main_activity.this, Arrays.asList("video_upload"));
                             session.requestNewReadPermissions(newPermissionsRequest);
                         }
                         path = getImagePath(videoUri); //function that gets absolute path

                         //Create a new file for the video 
                         File file = new File(path);
                         try {
                             //create a new request to upload video to the facebook
                             Request videoRequest = Request.newUploadVideoRequest(session, file, new Request.Callback() {

                                 @Override
                                 public void onCompleted(Response response) {

                                     if(response.getError()==null)
                                     {    
                                         Toast.makeText(Main_activity.this, "video shared successfully", Toast.LENGTH_SHORT).show();
                                         Log.i("it","worked");
                                        String atbilde =response.getGraphObject().getProperty("id").toString();
                                     }
                                     else
                                     {
                                         Toast.makeText(Uzdevumi.this, response.getError().getErrorMessage(), Toast.LENGTH_SHORT).show();
                                     }
                                 }
                             });

                             //Execute the request in a separate thread
                             videoRequest.executeAsync();

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

                     //Session is not open
                     else {
                         Toast.makeText(getApplicationContext(), "Please login to facebook first", Toast.LENGTH_SHORT).show();
                     }                  
                 }
           });

Edit: Changed the "String atbilde =" so it would store the video id, so now i just need to build the url by simply adding "https://www.facebook.com/video.php?v=" before the id.

1 Answers1

0

The response you receive if the upload of the Video was successful should contain an id property, see

https://developers.facebook.com/docs/graph-api/reference/v2.1/user/videos/#publish

To get a playable URL, you can use this id from the response to query the Graph API like this:

/{video_id}?fields=source

Have a look at https://developers.facebook.com/docs/graph-api/reference/v2.1/video/

Tobi
  • 31,405
  • 8
  • 58
  • 90