Android: опубликуйте изображение и текст в Instagram

Как я могу разместить изображение и текст в Instagram? нет проблем, если я должен открыть приложение Instagram, или если я делаю это через API или другое. проблема в том, что я не могу найти, как: у них есть только крюк iphone, и API несопоставим. кто-то так делал или знает? Благодарю.


person Zak    schedule 19.07.2012    source источник


Ответы (3)


Попробуйте это, это сработало для меня. Я буду использовать его, чтобы поделиться информацией о моем продукте. я получу подробную информацию о продукте, такую ​​​​как имя, изображение, описание, с сервера и отобразлю в приложении, а затем поделюсь им в instagram.

Получить URL изображения с сервера.

URL url = ConvertToUrl(imgURL);
    Bitmap imagebitmap = null;
    try {
        imagebitmap = BitmapFactory.decodeStream(url.openConnection()
                .getInputStream());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Разместите изображение и текст в Instagram.

// post on instagram
            Intent shareIntent = new Intent(
                    android.content.Intent.ACTION_SEND);
            shareIntent.setType("image/*");
            shareIntent.putExtra(Intent.EXTRA_STREAM,
                    getImageUri(HomeActivity.this, result));
            shareIntent.putExtra(Intent.EXTRA_SUBJECT, sharename);
            shareIntent.putExtra(
                    Intent.EXTRA_TEXT,
                    "Check this out, what do you think?"
                            + System.getProperty("line.separator")
                            + sharedescription);
            shareIntent.setPackage("com.instagram.android");
            startActivity(shareIntent);

Преобразование строки Uri в URL-адрес

 private URL ConvertToUrl(String urlStr) {
    try {
        URL url = new URL(urlStr);
        URI uri = new URI(url.getProtocol(), url.getUserInfo(),
                url.getHost(), url.getPort(), url.getPath(),
                url.getQuery(), url.getRef());
        url = uri.toURL();
        return url;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

Преобразование растрового изображения в Uri

public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(
        inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
person Jaydip Meghapara    schedule 10.09.2015
comment
Этот код работает для изображения, я не могу отправить текст с изображением. - person AmeeJoshi; 18.11.2015
comment
этот код отлично работает только с изображением... невозможно отправить текст - person Vivek Pratap Singh; 02.08.2016

Я сомневаюсь, что разработчики Instagram когда-нибудь выпустят iPhone как крючки для Android, поскольку намерения уже служат этой цели.

Если вы хотите поделиться изображением из своего приложения, используйте такое намерение:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/jpeg");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Path/To/Image.jpg"));
startActivity(Intent.createChooser(i, "Share Image"));

Обратите внимание, что это покажет диалоговое окно, позволяющее пользователю выбрать, какое приложение для обмена фотографиями запустить.

person slayton    schedule 19.07.2012
comment
Это рекомендуемый подход, которому вы должны следовать. В противном случае вам нужно будет использовать API Instagram, чтобы развернуть свой собственный материал для общего доступа. - person Kumar Bibek; 19.07.2012
comment
есть ли способ вызвать это из мобильного браузера? - person Ericson578; 31.07.2012
comment
Если у пользователя установлен Instagram, то когда пользователь нажмет кнопку «Поделиться», Instagram появится в этом списке. Если вы хотите поделиться через мобильный веб-сайт, вам придется использовать API Instagram. - person slayton; 31.07.2012
comment
используя вышеуказанный метод, я не загружаю изображение в instagram... Помогите, пожалуйста - person Richa; 31.07.2012

Это работает для меня .... но предполагает имя пакета com.instagram.android, которое, я полагаю, может измениться без предварительного уведомления.

private void shareToInstagram(Uri imageUri){
    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("image/*");
    i.putExtra(Intent.EXTRA_STREAM, imageUri);
    i.setPackage("com.instagram.android");
    activity.startActivity(i);
}

Вы всегда можете проверить, установлен ли пакет com.instagram.android, используя getPackageManager()... и если нет, то не устанавливайте имя пакета в намерении и позвольте средству выбора приложения помочь пользователю выбрать приложение для поделиться изображением с.

person sjwoodr    schedule 18.05.2013