与直接使用包装好的 Twitter 等库相比,SpringSocial 给我买了啥额外的东西

Posted

技术标签:

【中文标题】与直接使用包装好的 Twitter 等库相比,SpringSocial 给我买了啥额外的东西【英文标题】:What extras does SpringSocial buy me as compared to using the wrapped Twitter etc libraries directly与直接使用包装好的 Twitter 等库相比,SpringSocial 给我买了什么额外的东西 【发布时间】:2010-11-26 02:51:57 【问题描述】:

快速浏览一下 SpringSocial,似乎每个社交网络都有其不同的独特之处。没有暴露通用接口的接口

对网络进行身份验证 发送消息

上面列出的“网络身份验证”的原因是我想包括应用程序本身发布消息的工具,而不仅仅是单个用户。

至少 Jtwitter 公开了一个简单的 api 来进行身份验证,然后发送推文。为了实现与 SS 相同的效果,与 Jtwitter 的相对简单性相比,复杂性是压倒性的。 SS 需要 Spring,commons http 客户端,这显然比 jtwitter 更多。如果 SS 有一个通用的机制来连接然后发送而不是自定义代码,那么它可能是值得的,但最终它没有......

我对 SS 的假设或看法是否错误?

【问题讨论】:

【参考方案1】:

Spring Social 在幕后由四个部分组成:

    一个 OAuth API 来处理 3-legged OAuth dance(最有价值的功能 IHMO) 用于维护用户帐户信息(OAuth secret、profileUrl、imageUrl...)的持久层 使用服务提供商帐户(例如 FacebookConnect)登录 Java 绑定到提供者的 API,主要基于 RestTemplate

只有最后一部分可以与 包装器库(例如 JTwitter)进行比较。 如果您不需要建立 OAuth 连接,请不要使用 Spring Social。

我的 2 美分想到了 SS:

乍一看,我有点失望。 Spring Social 被描述为 Spring 框架的扩展,它允许您将应用程序与 Facebook 和 Twitter 等软件即服务 (SaaS) 提供商连接起来。 不幸的是,v1.0 中的这个框架无法轻松扩展以支持没有 OAuth 的连接。

如果SS分成3部分应该会更好,例如:

spring-oauth spring-mvc-signin spring-social(仅提供者绑定)

【讨论】:

同上...在我意识到它与 Spring MVC 密切相关之前,我尝试将它挂接到 FallWizard 中!这是不好的做法……不是每个人都使用 Spring MVC,这使 Spring Social 无法模块化。 Provider 包装器库是其中最强大且最有用的部分,因为它们太多了。我添加了一个 Spring Social 问题......如果你想要这个,请投票:jira.springsource.org/browse/SOCIAL-394【参考方案2】:

Spring Social 主要专注于在使用这些社交 API 时简化与 OAuth 相关的问题

其目的不是为跨不同社交网站的类似功能提供统一的 API - 因此,它为每个网站提供专门的 API。

这并不意味着您不能在 Spring Social 之上构建一个额外的 API 层来统一 API 的某些(对您很重要的)方面。

您抱怨 Spring Social API 的复杂性 - 我不明白,您能否准确地说出使用 Spring Social 发布推文有什么复杂之处:

twitter.updateStatus("Hey, I'm tweeting with #Spring Social!");

(来自 SpringSource blog post)

而且,关于依赖项:大多数使用 Spring Social 的应用程序很可能已经将 Spring 和 HttpClient 作为依赖项,因此这些对于典型的 Spring Social 开发者。

最后,如果 jTwitter 满足您的需求,那么它似乎最适合您。对每个人,他们自己的。 ;-)

另见:

Socializing Spring Applications - SpringSource 博客 How Spring is Simplifying Social Network Interactions - TheServerSide 上的讨论

【讨论】:

这不是简化。看一下使用 jtwitter n signpost 对抗 spring social equiv 的示例,后者在 loc 中出现的次数更多,没有任何胜利。要使用 fb 需要全新的代码,根本不需要重用和 morenjars 文件。没有统一的东西更复杂......那么有什么意义呢??? 如果您发现其中没有任何价值,请不要使用它。就那么简单。其他人从中发现了价值(我描述了价值)。

以上是关于与直接使用包装好的 Twitter 等库相比,SpringSocial 给我买了啥额外的东西的主要内容,如果未能解决你的问题,请参考以下文章

在字节跳动,一个更好的企业级SparkSQL Server这么做

Channels 是 IO Stream 上的包装器吗?

SQL Server - 执行直接查询与使用 sp_executesql 执行

在调用 UDF 本身时进行索引搜索,在将 UDF 包装在 sp 中时进行索引扫描

Github2.2K星PyTorch资源列表:450个NLP/CV/SP论文实现教程示例

Github 3.5K 星PyTorch资源列表:450个NLP/CV/SP论文实现库教程&示例