问题标签 [spring-social-twitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
334 浏览

spring - Spring Social java.io.NotSerializableException:org.springframework.social.security.SocialAuthenticationServiceRegistry

我正在尝试使用 Spring Social 通过 Twitter 和 Appengine 上的 Spring Security 登录并获得以下异常。

使用 URL http://localhost:8888/auth/twitter?oauth_token=token_value&oauth_verifier=verified_value从 twitter 重定向回来后出现此错误

任何帮助表示赞赏

错误堆栈跟踪:

java.lang.RuntimeException: java.io.NotSerializableException: com.google.appengine.tools.development.SerializableObjectsOnlyHashSessionManager$SerializableObjectsOnlyHttpSession.checkCanSerialize(SerializableObjectsOnlyHashSessionManager.java:66) 在 com.google.appengine 的 org.springframework.social.security.SocialAuthenticationServiceRegistry .tools.development.SerializableObjectsOnlyHashSessionManager$SerializableObjectsOnlyHttpSession.setAttribute(SerializableObjectsOnlyHashSessionManager.java:43) at org.springframework.social.security.SocialAuthenticationFilter.addSignInAttempt(SocialAuthenticationFilter.java:336) at org.springframework.social.security.SocialAuthenticationFilter.doAuthentication(SocialAuthenticationFilter .java:309) 在 org.springframework.social.security.SocialAuthenticationFilter。org.springframework.social.security.SocialAuthenticationFilter.attemptAuthentication(SocialAuthenticationFilter.java:157) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211) at org.springframework.socialAuthenticationFilter.java:246)attemptAuthService(SocialAuthenticationFilter.java:246) .springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.springframework.security.web .FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:80) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java :107) 在 org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) 在 org.springframework.web 的 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) .filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter .java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50 ) 在组织。springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.FilterChainProxy.doFilterInternal( FilterChainProxy.java:192) 在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 在 org.springframework.web .filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java :88) 在 org.springframework.web.filter。org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 上 com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter. java:74) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127) 在 org.mortbay .jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain .doFilter(ServletHandler.java:1157) 在 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 在 org.mortbay.jetty .servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1157) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 在com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 在 org.mortbay.jetty .security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) ) 在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 在 com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98) 在 org.mortbay.jetty.handler。 HandlerWrapper.handle(HandlerWrapper.java:152) 在 com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:503) 在 org.mortbay.jetty.handler。HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty .HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 在 org. mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java: 582)引起:java.io.NotSerializableException:org.springframework.social.security.SocialAuthenticationServiceRegistry at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) 在 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 在 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 在 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 在 java. io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) at com.google.appengine.tools.development.SerializableObjectsOnlyHashSessionManager$SerializableObjectsOnlyHttpSession.checkCanSerialize(SerializableObjectsOnlyHashSessionManager.java:64) ... 61 更多第 1416 章.java:64) ... 61 更多第 1416 章.java:64) ... 61 更多

0 投票
1 回答
293 浏览

twitter - Java -SpringSocial:获取两个日期之间的 Twitter 数据

我正在使用 spring social 来获取特定标签的 Twitter 数据,比如 #spring。我想要实现的是获取两个日期/时间戳之间的所有数据。例如。上次获取时间和当前时间之间的数据。Spring 社交 API 允许我获取两个 tweetID 之间的数据,但我未能找到一种方法,可以在两个日期之间获取数据。

请帮忙。

安吉·索兰基

0 投票
2 回答
146 浏览

spring - 使用 spring social twitter 连接到 twitter

我正在尝试Spring IO Guides中的这个示例

它解释了如何从 twitter 中检索朋友列表。

但是当我点击连接到推特时,它并没有连接到推特。

我在属性文件中有我的 appId 和 secretId,它位于类路径中,并且我对我在 twitter 上创建的应用程序具有读、写访问权限。

在此处输入图像描述

可能是什么问题呢

0 投票
1 回答
731 浏览

java - 为什么我通过 Spring Boot / Spring Social 指南示例获得与 twitter 的空连接?

我按照 spring.io 网站上的说明进行操作:http: //spring.io/guides/gs/accessing-twitter/

而且我没有连接。“findPrimaryConnection()”调用返回 null。我没有看到任何异常抛出。我确实在 .properties 文件中设置了 appId 和 appSecret。

这是控制器代码:

这是 HTML 表单:

0 投票
1 回答
87 浏览

spring-integration - Spring Twitter 集成,无法发送状态更新。详细错误:403:请求被理解,但已被拒绝

我正在关注 Mark Lui 和 Josh Long 的 Pro Spring Integration 书中的 Spring Twitter Integration 示例。

但收到错误提示无法发送状态更新。详细错误:403:请求被理解,但已被拒绝。

可能是什么问题呢

这是我的 TwitterOutbound.java

和 twitter-outbound.xml

0 投票
3 回答
687 浏览

spring - 春季社交中的朋友和追随者

我在我的项目中使用 spring-integration-twitter 4.1.6.RELEASE。使用 TwitterTemplate 我试图为经过身份验证的用户获取所有朋友。

所以我用这个方法,

friendsList = twitterTemplate.friendOperations().getFriends();

但在这种情况下,我只会得到 20 个朋友作为默认计数。但是我有 33 个朋友,我想把他们都带走。我该怎么做。当我调用此方法时,我也是经过身份验证的用户。在 TwitterTemplate 中,无法将计数作为参数传递。但 API 表示它将返回 5000 个用户。

/** * Retrieves a list of up to 5000 users that the authenticated user follows. * Note that this method make multiple calls to Twitter's REST API (one call to get a list of the friend IDs and one call for every 100 friends). * If all you need is the friend IDs, consider calling getFriendIds() instead. * Or if you need only a subset of the user's friends, call UserOperations.getUsers() passing in the list of friend IDs you need. * @return a list of TwitterProfiles * @throws ApiException if there is an error while communicating with Twitter. * @throws MissingAuthorizationException if TwitterTemplate was not created with OAuth credentials. */ CursoredList<TwitterProfile> getFriends();

TwitterTemplate 调用 twitter API 来获取数据。所以请求重定向到 Twitter API 的https://api.twitter.com/1.1/friends/list.json访问 URL。

推特 API 说明

目前,结果按最近的顺序排列——但是,此顺序可能会受到未宣布的更改和最终一致性问题的影响。结果以 20 个用户为一组给出,并且可以在后续请求中使用 next_cursor 值导航多个结果“页面”。有关详细信息,请参阅使用光标导航集合。

我怎样才能做到这一点???

0 投票
1 回答
1008 浏览

spring-integration - SpringXD:流中模块之间相同类的ClassCastException

我有一个自定义 Spring XD 源模块,它使用 Spring Social for Twitter 并输出 Tweet 对象。这工作得很好。我可以记录源的输出并查看列出的 Tweet 对象。我可以将该流的源的输出类型更改为 application/json 以查看 JSON 的输出。这按预期工作。

然后我创建了一个处理器模块,它将从该推文创建一个新对象并输出它。转换消息需要一个包含 Tweet 对象的 GenericMessage 作为其有效负载(我也尝试让方法参数只是 Tweet,但这也不起作用)。

但是,当我将两个模块链接在一起时

并且从源模块输出一条推文,我得到一个类转换异常:

我已经验证这两个模块都使用相同版本的 Spring Social Twitter,所以那里应该没有问题。目前,模块通过本地传输进行通信,因此这也不应该是任何类加载问题(它们最终将需要通过非本地传输进行通信)。

我也尝试过解决方法,例如在流中定义源模块的输出类型应该是application/json,然后尝试从输入字符串有效负载中读取 JSON,但由于 Spring Social Tweet 对象的性质,Jackson 不遵守.

我想知道为什么会发生这种情况以及我应该如何解决这个问题?我觉得我无疑做错了什么。如果我不允许这样做,我想知道为什么会这样以及应该做的事情是什么。

任何帮助,将不胜感激。

谢谢

编辑:我正在使用 Spring XD 1.2.1.RELEASE

0 投票
1 回答
954 浏览

spring-social - 你可以有多个 HttpSessionStrategy 吗?

我希望有一个基于HttpSessionStrategy下面列出的标头,但是 Spring Social 似乎希望将社交令牌存储在会话中。当它被重定向回应用程序时,没有x-auth-header指定,因此创建了一个新会话并且令牌丢失了。

我们还能将HeaderSessionStrategywith theCookieSessionStrategy作为后备吗?

处理这个问题的最佳方法是什么?

0 投票
2 回答
642 浏览

spring - 如何通过providerId、accessToken和secret获取providerUserId?(春季社交)

在我的应用程序中,我可以通过 providerId 和 providerUserId 识别用户。但最初,我只有以下信息:

  • 提供者 ID,
  • 访问令牌,
  • 秘密。

因此,我需要通过这些信息获取 providerUserId。

我正在尝试使用以下代码:

但问题是连接键未初始化:providerUserId 为空。

在这种情况下如何获得它?

0 投票
1 回答
414 浏览

spring - Spring Social Twitter 流返回未经授权的 HTTP 401

我尝试使用 spring-social-twitter 与 Twitter 建立流连接,但是当我尝试发出请求时,我得到了401 unauthorized.

spring-social-twitter 正在尝试连接到https://stream.twitter.com/1.1/statuses/filter.jsonresponse.getBody()当我调试它并尝试获取HttpRetryException详细信息时:cannot retry due to server authentication, in streaming mode

我对应用程序有适当的授权,但我没有访问令牌的授权,因为我在这里不需要它。我用1.1.0.RELEASE版本。

我会很高兴你的帮助!

这是我对流的呼吁:

这是我的简单监听类: