Невозможно опубликовать URL видео на Facebook через Android Intent.ACTION_SEND - PullRequest
0 голосов
/ 15 июля 2011

Мне нужно поделиться URL на видео ресурсе программно. Пример URL-адреса: http://flash.video.worldnow.com/kold/KOLD_20110714204221200AA.mp4

Я использую Intent.ACTION_SEND для этого:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Test subject");
sendIntent.putExtra(Intent.EXTRA_TEXT, "http://flash.video.worldnow.com/kold/KOLD_20110714204221200AA.mp4");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent,
                "Share URL"));

Android-приложение Facebook не может обработать URL-адрес и отображает следующую ошибку:

"флэш-объекты должны иметь атрибуты 'swfsrc' и 'imgsrc'"

Как избежать ошибки? Как вставить обязательные атрибуты в текстовое сообщение?

Ответы [ 4 ]

2 голосов
/ 13 ноября 2014

После нескольких часов попыток выяснить, как заставить его работать для загрузки и обмена видео на Facebook, YouTube, Instagram и WhatsApp. это код, который работал для меня. Загрузка записанного видео из вашего приложения в приложения для социальных сетей

попробуйте использовать ContentValues ​​при работе с видео и указать MediaStore.Video.Media.Data в содержимом.

ContentValues content = new ContentValues(4);
        content.put(Video.VideoColumns.DATE_ADDED,
        System.currentTimeMillis() / 1000);
        content.put(Video.Media.MIME_TYPE, "video/mp4");
        content.put(MediaStore.Video.Media.DATA, "your_path_to_video");
        ContentResolver resolver = getBaseContext().getContentResolver();
        Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("video/*");
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
        sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
        startActivity(Intent.createChooser(sharingIntent,"share:")); `
1 голос
/ 20 июля 2011

Я просмотрел исходники приложений Facebook (ShareLinkActivity) и не нашел возможности добавить обязательные поля для отправки запроса.Содержимое намерения используется только дополнительный параметр Intent.EXTRA_TEXT.

0 голосов
/ 16 ноября 2015

Я искал это почти 7 часов, вот единственное решение , которое отлично сработало .

 File filePath = filesList[position]; 
            Intent shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_TEXT, "Text");
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(filesList[position].getAbsolutePath())));  //optional//use this when you want to send an image
            shareIntent.setType("video/mp4");
            shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            startActivity(Intent.createChooser(shareIntent, "send"));
0 голосов
/ 15 июля 2011

Посмотрите на эту страницу здесь. Похоже, что он хочет, чтобы swfsrc и imgsrc были закодированы в JSON-кодированный массив Надеюсь, это поможет.

...