在Instagram上分享并获得回调

时间:2015-09-14 07:01:04

标签: android callback instagram sharing instagram-api

我必须将我的应用程序中的图像共享到 instagram 。我已经浏览了 Instagram开发者文档,他们只提到了通过Intent方法进行共享,但我需要的是在发布成功后我必须得到一个回调。

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

根据API的不同,有几种选择。首先引用他们的Android Intents,这是一个不好的例子恕我直言,这或多或少是Android中如何共享数据的默认方式。你想要的是更像是打开他们的应用程序。对于这种情况,有setPackage()选项:

// Create the new Intent using the 'Send' action.
Intent share = new Intent(Intent.ACTION_SEND);

// Limit this call to instagram
share.setPackage("com.instagram.android");

// Set the MIME type
share.setType(type);

// Create the URI from the media
File media = new File(mediaPath);
Uri uri = Uri.fromFile(media);

// Add the URI to the Intent.
share.putExtra(Intent.EXTRA_STREAM, uri);

try {
    // Fire the Intent.
    startActivityForResult(share, REQUEST_CODE);
} catch(ActivityNotFoundException e) {
    // instagram not installed
}

现在,对于未安装instagram的情况,您几乎已经丢失。如果没有其他SDK,则无法做任何事情。

一个非常复杂的解决方法可能是将文件上传到您自己的后端。然后打开浏览器以访问oauth令牌,以通过后端上传图像。然而,这是一个安静的昂贵解决方案,我会避免。