在 Android 应用程序中集成 Facebook 和 Twitter feed
我正在将社交集成添加到我的应用程序中,并正在寻找如何进行此操作的一般建议。
目前,该应用程序正在显示特定 Facebook 墙的提要(由 Facebook 的 Android SDK 处理的身份验证)和特定 Twitter 主题标签的提要。这只是一个开始,但我希望这些提要能做更多的事情。对于 Facebook:
- 对于长提要项目,用户应该能够“查看更多”,包括链接的图片
- 提要项目内的链接应该可以工作并在浏览器中打开
- 喜欢/不喜欢提要项目
- 对提要项目发表评论
- 在墙上发布(在提要中创建另一个项目) )
同样,对于 Twitter:
- 推文内的链接应该在浏览器中工作并打开
- 回复和转发推文
- 创建包含特定主题标签的推文
由于 Facebook 和 Twitter 都有全面的 API,并且有足够的代码示例,这在技术上都是可行的, 但看起来很像重新实现 Facebook 和 Twitter 客户端。要确保所有小细节正确、维护 API 更改的代码需要大量工作, 并且并不真正在我的应用程序的范围内。
所以我在想如何避免重新实现 Facebook 和 Twitter 客户端。
想法一:引导用户访问相应网站的移动版本并完成操作。缺点是用户必须经过繁琐的身份验证,即使用户设备上已安装并经过身份验证的专用客户端应用程序也是如此。
想法二:使用意图系统插入现有应用程序:如果安装了官方 Twitter 应用程序,则使用它来进行主题标签搜索。如果安装了 Seesmic 或 Twidroid 或其他一些 Twitter 客户端,请使用它们。作为后备方案,请在浏览器中打开 Twitter 的移动网站。与 Facebook 类似。这里的缺点是“显示 facebook 流”或“搜索 X 的推文”的意图没有标准化。大多数当前的应用程序甚至没有记录的插入方法。在这些应用程序中使用未记录的入口点是可能的,但会使我的应用程序变得脆弱且脆弱。
那么,这个问题是,您是如何处理在您的应用程序中集成 Facebook 和 Twitter 功能的,或者其他人是如何处理的?
I'm adding social integration to my app, and am looking for general advice how to go about it.
At the moment the app is showing feed of particular Facebook wall (authentication handled by Facebook's Android SDK) and feed for particular Twitter hashtag. That's a start, but I want these feeds to do a bit more. For Facebook:
- For long feed items, user should be able to "see more", including linked pictures
- Links inside feed items should work and open in browser
- Like/unlike feed items
- Comment on feed items
- Post on the wall (create another item in feed)
Similarly, for Twitter:
- Links inside tweets should work and open in browser
- Reply to, and retweet tweets
- Create tweets that contain the specific hashtag
Since Facebook and Twitter both have comprehensive APIs and there are enough code samples floating around, this is all technically doable, but seems a lot like reimplementing Facebook and Twitter clients. That's a lot of work to get all the little details right, maintain code for API changes,
and not really in the scope of my app.
So I'm thinking how to avoid reimplementing Facebook and Twitter clients.
Idea one: direct user to mobile versions of the respective sites and be done with it. Downside is that user will have to go through cumbersome authentication, even if there are dedicated client apps already installed and authenticated on user's device.
Idea two: plug into existing apps using intents system: if official Twitter app is installed, use that to do hashtag search. If Seesmic or Twidroid or some other twitter client is installed, use that. As a fallback, open Twitter's mobile website in browser. Similar for Facebook. Downside here is that intents for "show facebook stream" or "search tweets for X" are not standartized. Most current apps don't even have documented ways to plug into them. Using undocumented entry points in those apps is possible but would make my app hacky and brittle.
So, this question, how you've been dealing with integrating bits of Facebook and Twitter functionality in your apps, or seen done by others?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里有一个关于如何实现 twitter/facebook oauth 的好提示:
这样屏幕方向改变就可以工作了; FB 和 TW 的架构相同。
我已经以这种方式实现了它,但我无法共享我的代码(它是为我的公司授权的)。
Here is a good tip about how to implement twitter/facebook oauth:
This way screen orientation change will work; you will have same architecture for FB and TW.
I have implemented it this way, yet I can not share my code (it is licensed for my company).
当我将 Facebook 和 Twitter 集成添加到我的应用程序中时(无耻插件:秘密消息) ,我尝试通过 Intent 调用已安装的 Twitter 客户端应用程序。这并不有趣,因为没有“facebook/text”或“twitter/text”意图之类的东西。我知道一些 Twitter 应用程序创建了自己的应用程序,但它们并没有得到普遍使用,甚至没有被广泛使用。
因此,另一个选项是获取所有已安装应用程序的列表,并筛选要在选择器中显示以供用户选择的应用程序。但检索软件包列表及其用户友好的名称需要很长时间。所以我讨厌这个选择。
我最终将 Facebook 和 Twitter 的非常简单的 GUI 集成到我自己的应用程序中,并仅使用 OAuth 来验证用户身份。
我希望这可以帮助您选择方向。
When I added Facebook and Twitter integration into my app (shameless plug: Secret Message), I attempted to invoke an installed Twitter client app via Intent. It wasn't fun, because there is no such thing as a "facebook/text" or "twitter/text" Intent. I know some Twitter apps create their own, but they're not universally used or even known.
So the other option is to get a list of all installed apps and filter on those you want to display in a chooser for the user to select. But retrieving a list of packages and their user-friendly names takes forever. So I hated that option.
I ended up integrating a very simple GUI for both Facebook and Twitter into my own app, and just used OAuth to authenticate users.
I hope this helps you pick your direction.
在 Android 上实现 Twitter 集成非常容易(您可以使用 Twitter4J,这是一个非常好的 Twitter Java 库来访问公共 Web 服务)。
一旦你验证了 Twitter 用户的身份,集成推文/转发就是基本的事情(只需一个允许用户输入 140 个字符的文本框和一个提交按钮 - 创建推文、转发、回复等都是 1 或使用 twitter4J 的 2 行代码)。链接内容需要格式化列表视图来处理网络链接并根据需要打开。
整个 Twitter 集成中最困难的部分是完成 OAuth 内容 - 有一个关于如何实现 twitter 和 OAuth 身份验证内容的教程 此处
不幸的是,我从未尝试过 Facebook 集成,但希望有人能够提供帮助。
implementing Twitter integration is pretty easy on Android (you can use Twitter4J which is a pretty nice Twitter Java Library to access the public web services).
To integrate tweeting/retwreeting is basic stuff once you have authenticated your twitter user (just have a text box to allow users to enter thei 140 characters and a button to submit it - creating tweets, retweeting, replying etc is all a matter of 1 or 2 lines of code using twitter4J). The link stuff requires formating your listview to handle weblinks and open as appropriate.
The toughest part of the whole twitter integration thing is getting the OAuth stuff done - there is a tutorial on how to implement twitter and the OAuth authentication stuff here
Unfortunately, I have never tried facebook integration, but hopefully someone will be able to help out with that.