Публикация видео в facebook на андроиде

Я успешно разместил видео по коду ниже

        File file1  = new File( Environment.getExternalStorageDirectory() + File.separator + "a.3gp");
            request = Request.newUploadVideoRequest(Session.getActiveSession(), file1, new Request.Callback() {
                @Override
                public void onCompleted(Response response) {
                    //appLink=null;
                    if (response.getError() == null) {
                        Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish success");
                        if (uploadListener != null) {
                            uploadListener.onSuccess(null);
                        }
                    } else {
                        Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
                                + response.getError().getErrorMessage());
                        Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
                                + response.getError().toString());
                        if (uploadListener != null) {
                            uploadListener
                            .onError("Facebook can't publish your content");
                        }
                    }
                }
            });
request.executeAsync();

в этом сценарии сначала мне нужно загрузить видео с URL-адреса и сохранить его на SD-карте, после чего я могу загрузить видео с помощью метода newUploadVideoRequest, но в ios они просто передают URL-адрес и вызывают requestWithGraphPath :@"я/видео". Итак, как мы можем сделать это в Android, чтобы мне не нужно было загружать видео, а затем публиковать его вместо того, чтобы я мог напрямую публиковать это видео, используя этот URL-адрес.

Я видел этот URL-адрес https://developers.facebook.com/docs/graph-api/reference/video


person Raj    schedule 23.07.2015    source источник
comment
Вы используете facebook SDK?   -  person sunil sunny    schedule 23.07.2015


Ответы (1)


Я использую Facebook SDK 3.14, и приведенный ниже код работает нормально.

Bundle postParams = new Bundle();
postParams.putString("name", give a title);
postParams.putString("type", "link"); 
postParams.putString("link", enclosing url you want to share);    
Request request = new Request(session,"me/feed" , postParams,
            HttpMethod.POST, callback);
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();   

и это будет обратный вызов

Request.Callback callback = new Request.Callback() {
    @Override
    public void onCompleted(Response response) {
      FacebookRequestError error = response.getError();
      if(error!=null){
       something went wrong
     }else{
       successfully posted
      }
    }

}; 

Попробуйте это и дайте отзыв.

person sunil sunny    schedule 23.07.2015
comment
request.executeAsync() или task.execute(); ? - person Raj; 23.07.2015
comment
привет, это опубликует ссылку на видео, но я хочу напрямую поделиться видео, которое я могу посмотреть на Facebook. - person Raj; 23.07.2015
comment
Сам @Raj task.execute() почему? - person sunil sunny; 23.07.2015
comment
видео успешно опубликовано, но оно публикует ссылку на это видео, когда я нажимаю на эту ссылку, оно перенаправляет меня к этому приложению, и оттуда я могу смотреть видео, это нормально, но я хочу поделиться видео таким образом, чтобы я мог напрямую посмотрите это на facebook в ios, они могут сделать это, указав только URL-адрес в каком-то методе графического API - person Raj; 23.07.2015
comment
Зачем вам это нужно. Вы можете смотреть видео на самом Facebook.. Делитесь воспроизводимым URL-адресом вместо вложенного URL-адреса?. Хорошо, тогда я думаю, это зависит от ссылок, которыми вы делитесь, в моем случае я делюсь URL-адресами видео YouTube. - person sunil sunny; 23.07.2015
comment
да, это воспроизводимый URL-адрес, и когда они в iOS, они могут опубликовать этот URL-адрес и могут напрямую смотреть его на Facebook, но то же самое не работает в Android - person Raj; 23.07.2015
comment
Хорошо, понятно, вы можете просто жестко закодировать URL-адрес, подобный этому youtube.com/watch?v=Y9CKG9WBq2s и посмотрите, соответствует ли это вашим требованиям. ? - person sunil sunny; 23.07.2015
comment
Давайте продолжим обсуждение в чате. - person Raj; 23.07.2015