【问题标题】:Integrating Facebook and Twitter feeds in Android application在 Android 应用程序中集成 Facebook 和 Twitter 提要
【发布时间】:2011-09-11 02:23:30
【问题描述】:

我正在向我的应用程序添加社交集成,并且正在寻找如何去做的一般建议。

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

  • 对于长提要项目,用户应该能够“查看更多”,包括链接的图片
  • Feed 项内的链接应该可以工作并在浏览器中打开
  • 喜欢/不喜欢 Feed 项
  • 对 Feed 项的评论
  • 在墙上发帖(在提要中创建另一个项目)

同样,对于 Twitter:

  • 推文中的链接应该可以在浏览器中工作并打开
  • 回复和转发推文
  • 创建包含特定主题标签的推文

由于 Facebook 和 Twitter 都有全面的 API,并且有足够多的代码示例,这在技术上都是可行的,但看起来很像重新实现 Facebook 和 Twitter 客户端。要正确处理所有小细节,维护 API 更改的代码,需要做大量工作, 而不是真的在我的应用程序的范围内。

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

想法一:将用户引导至相应网站的移动版本并完成操作。缺点是用户必须通过繁琐的身份验证,即使已经在用户的设备上安装并验证了专用的客户端应用程序。

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

那么,这个问题,您是如何处理将 Facebook 和 Twitter 功能集成到您的应用程序中的,或者看到其他人完成的?

【问题讨论】:

    标签: android facebook twitter android-intent integration


    【解决方案1】:

    这里有一个关于如何实现 twitter/facebook oauth 的好技巧:

    1. 创建新活动并将其命名为 OAuthActivity。
    2. 创建扩展 WebView 的新类。
    3. 遵循 facebook 开发者指南的 WEB 应用程序(不是移动应用程序!)并在您的 WebView 内实现 oauth 调用。对于 Twitter,使用 Signpost-core 和 signpost-commonshttp4 来获取 oauth(facebook 使用它自己的 oauth 变体,所以你需要自己做)。
    4. 覆盖 WebView 以便当 facebook 将您的 WebView 子类重定向到您的回调 url 时它会自行关闭。
    5. 使用 OAuthActivity 通过 RunActivityForResult 将 OAuth 密钥/秘密返回给您的主要活动。

    这样屏幕方向更改将起作用; FB 和 TW 的架构相同。

    我以这种方式实现了它,但我不能分享我的代码(它是为我的公司授权的)。

    【讨论】:

      【解决方案2】:

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

      一旦你验证了你的推特用户,整合推特/转推是基本的东西(只有一个允许用户输入 140 个字符的文本框和一个提交它的按钮 - 创建推文、转推、回复等都是一件容易的事使用 twitter4J 的 1 或 2 行代码)。链接内容需要格式化您的列表视图以处理网络链接并根据需要打开。

      整个 twitter 集成最困难的部分是完成 OAuth 的工作 - 有一个关于如何实现 twitter 和 OAuth 身份验证的教程here

      不幸的是,我从未尝试过 facebook 集成,但希望有人能够提供帮助。

      【讨论】:

        【解决方案3】:

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

        因此,另一个选项是获取所有已安装应用程序的列表,并筛选出您希望在选择器中显示的应用程序供用户选择。但是检索软件包列表及其用户友好名称需要很长时间。所以我讨厌那个选项。

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

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

        【讨论】:

        • 我最终在 WebView 中显示了 twitter 和 facebook 移动网站:不是很复杂,但非常容易实现,现在就可以了。同意尝试与已安装的应用程序集成是缓慢、笨拙和脆弱的。需要标准和更好的平台支持来做到这一点。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-01
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多