2011-06-08 102 views
3

我正在将社交集成添加到我的应用程序,并且正在寻找一般性建议如何解决这个问题。在Android应用程序中集成Facebook和Twitter供稿

目前该应用程序正在显示特定Facebook墙(由Facebook的Android SDK处理的身份验证)的Feed以及特定Twitter主题标签的Feed。这是一个开始,但我希望这些提要能做得更多。对于Facebook的:

  • 对于长源项目,用户应该能够“看多”,包括链接的图片
  • 内部馈送项目链接应该工作并打开浏览器
  • 喜欢/不象源项目
  • 评论饲料物品
  • 张贴在墙上(创建在进料的其他项目)

类似地,对于微博:

  • 内鸣叫链接应该工作并打开浏览器
  • 回复和转推的tweets
  • 创建包含特定的主题标签

由于Facebook和Twitter都有全面的API和有鸣叫足够的代码示例浮动,这在技术上是可行的,但似乎很像重新实现Facebook和Twitter客户端。这是很多工作来获得所有的小细节,维护代码API更改, ,而不是真的在我的应用程序的范围内。

所以我想如何避免重新实现Facebook和Twitter客户端。

想法之一:将用户引导到各个站点的移动版本并完成它。缺点是用户将不得不经过繁琐的认证,即使已经在用户的设备上安装并认证了专用客户端应用。

想法二:使用意图系统插入现有的应用程序:如果安装了官方的Twitter应用程序,使用它来做标签搜索。如果安装了Seesmic或Twidroid或其他Twitter客户端,请使用它。作为后备,在浏览器中打开Twitter的移动网站。与Facebook类似。这里的缺点是“show facebook stream”或“搜索X推文”的意图没有被标准化。目前大多数应用程序甚至没有记录的方法来插入它们。在这些应用程序中使用未公开的入口点是可能的,但会使我的应用程序变得笨拙和脆弱。

所以,这个问题,你如何处理在你的应用程序中整合Facebook和Twitter功能的位,或者看到别人完成?

回答

1

当我将Facebook和Twitter集成添加到我的应用程序(无耻插件:Secret Message)时,我试图通过Intent调用已安装的Twitter客户端应用程序。这并不好玩,因为没有“脸书/文字”或“推特/文字”意图。我知道一些Twitter应用创建了自己的应用,但它们并未被普遍使用甚至不为人知。

因此,另一种选择是获取所有安装的应用程序的列表,并筛选要显示在选择器中供用户选择的应用程序。但是,检索软件包列表和用户友好的名称需要永久。所以我讨厌这个选择。

我最终将Facebook和Twitter的一个非常简单的GUI集成到我自己的应用程序中,并使用OAuth对用户进行身份验证。

我希望这可以帮助你选择你的方向。

+0

我最终在WebView中显示twitter和facebook移动网站:不是非常复杂,但非常容易实现,现在就可以完成。同意试图与已安装的应用程序集成是缓慢的,黑客和脆弱的。需要标准和更好的平台支持才能做到这一点。 – 2011-06-28 09:30:48

1

在Android上实现Twitter集成非常简单(您可以使用Twitter4J,这是一个非常好的Twitter Java库来访问公共Web服务)。

要整合推特/转发是基本的东西,一旦你已经认证你的Twitter用户(只需一个文本框,允许用户输入140个字符和一个按钮来提交它 - 创建推文,转推,回复等都是使用twitter4J的1或2行代码)。链接的东西需要格式化你的列表视图来处理网页链接并在适当的时候打开。

整个Twitter的一体化件事最困难的部分是获得OAuth的东西做 - 有关于如何实现的Twitter和OAuth认证的东西here

不幸的是,我从来没有尝试过facebook集成的教程,但希望有人可以帮助解决这个问题。

2

这里是如何实现的Twitter/Facebook的OAuth的一个很好的提示:

  1. 创建新的活动,并将其命名OAuthActivity。
  2. 创建扩展WebView的新类。
  3. 请按照facebook应用程序(不是移动应用程序!)的facebook开发人员指南进行操作,并在您的WebView中实施oauth调用。对于Twitter使用Signpost-core和signpost-commonshttp4来获得oauth(Facebook使用它自己的oauth变体,所以你需要自己做)。
  4. 覆盖WebView,以便在Facebook将您的WebView子类重定向到您的回调URL时自动关闭。
  5. 使用OAuthActivity通过RunActivityForResult将OAuth密钥/密钥返回到主要活动。

这种方式的屏幕方向更改将工作;您将拥有FB和TW相同的架构。

我已经以这种方式实现了它,但我无法分享我的代码(它是授权给我的公司使用的)。

相关问题