来自 Android 的 Instagram 在特定用户上打开并为上传的图像添加标题

Posted

技术标签:

【中文标题】来自 Android 的 Instagram 在特定用户上打开并为上传的图像添加标题【英文标题】:Instagram from Android open on certain user and add caption to uploaded image 【发布时间】:2013-02-21 12:38:16 【问题描述】:

就我目前所见,android 版 Instagram 非常有限。我的场景很简单:允许用户编辑图片,当他点击发送时:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");

然后使用queryIntentActivities() 搜索以查看是否安装了 Instagram。如果是,我发送要上传的图像的路径:

 share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path to myfile.png"));
 share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
 share.putExtra(Intent.EXTRA_SUBJECT, "Sample subject");
 share.putExtra(Intent.EXTRA_TEXT, "Sample text");
 share.putExtra(Intent.EXTRA_TITLE, "Sample title");

结果:图片是使用 Instagram 应用上传的(当然,如果我已登录),但我无法为其添加标题。 putExtra 没有任何效果。那么,有什么方法可以添加标题作为意图参数?

还有一个问题,是否可以打开填写某个用户名的 Instagram 应用?

【问题讨论】:

嗨@Alin,您找到解决字幕问题的方法了吗? 试试这个***.com/a/14954551/926598 Instagram 需要公开此功能。 Instagram API 尚不支持上传 -> [LINK][1] [1]: ***.com/a/12533813/1832221 @lopez.mikhael 他没有为此使用 Instagram API(如您所说,尚不支持)。他检查用户是否安装了 Instagram 并使用 Intent 发送图像。 【参考方案1】:

Instagram 的 Android 应用似乎忽略了 EXTRA_TEXT、EXTRA_SUBJECT 和 EXTRA_TITLE,因此在上传图片时添加标题似乎是不可能的。顺便说一句,您可以尝试不同的方法来检查它是否在每种情况下都忽略了这些额外内容:

选项 #1:更改 MIME 类型。

您将 MIME 类型设置为“image/jpeg”。尝试使用“image/”或“/*”来检查他们的应用是否不会忽略这些额外内容。

share.setType("image/*");

share.setType("*/*");

选项 #2:

当您发送多种 MIME 类型(图像和文本)时,他们的应用可能期待 ACTION_SEND_MULTIPLE 而不是 ACTION_SEND。

Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE);

选项 #3:使用MediaStore.Images.Media.insertImage(ContentResolver cr, String imagePath, String name, String description) 函数:

Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), "file:///" + path to myfile.png", "Sample title", "Sample description")));
share.setType("image/jpeg");
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);

选项#4:将您的问题发布到他们的developer forum,尽管还有类似的问题仍未解决:

https://groups.google.com/forum/?fromgroups#!searchin/instagram-api-developers/caption$20action_send/instagram-api-developers/PJDuG2sTDlM/6bno5dZmoTEJ

https://groups.google.com/forum/?fromgroups#!searchin/instagram-api-developers/caption/instagram-api-developers/7XUKm9HSAdg/rJbdSnOmXacJ

别忘了回来告诉我们他们的答案!

【讨论】:

因为这个答案没有任何回应: - 将类型设置为 */* 将我直接发送到新闻源 - 看起来有很多方法可以将图像传递到 Instagram 应用程序,但无法包含标题。如果我错了,请纠正我,并请发布任何解决方案以包含标题。【参考方案2】:

Instagram 似乎已更新其应用以接受 EXTRA_TEXT 以添加标题。如果用户拥有 Instagram 的更新版本(2014 年 7 月 1 日或更高版本),您可以使用以下代码发布图片并添加标题:

Intent instagram = new Intent(android.content.Intent.ACTION_SEND);
instagram.setType("image/*");
instagram.putExtra(Intent.EXTRA_STREAM, [URI of photo]);
instagram.putExtra(Intent.EXTRA_TEXT, [Text of caption]);
instagram.setPackage(instagramPackageName);
startActivity(instagram);

使用旧版本的用户仍会获得图像,但不会预先填充标题。

此代码假设您已经完成了身份验证流程。

【讨论】:

感谢分享,很高兴他们终于添加了这个选项。 我可以确认他们上周删除了设置标题的选项。 EXTRA_TEXT 从文档中消失:instagram.com/developer/mobile-sharing/android-intents 迟到的答案,但可能对某人有所帮助...我只是将要发送到 Instagram 的任何标题放在剪贴板中。我有一个小弹出窗口,指示用户长按 Instagram 的标题,然后只需单击“粘贴”即可插入在我的应用中生成的任何标题文本。

以上是关于来自 Android 的 Instagram 在特定用户上打开并为上传的图像添加标题的主要内容,如果未能解决你的问题,请参考以下文章

提供来自 instagram 的所有用户媒体

来自本机应用的 Instagram API OAuth

Instagram 是不是会阻止来自某些 IP 的 CDN URL 请求?

无法接收来自 Instagram API 的 POST 请求

来自 HttpWebResponse Instagram 的 403 错误

带有来自 Instagram API 的正确访问令牌的空成功响应