问题标签 [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.
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 更多
twitter - Java -SpringSocial:获取两个日期之间的 Twitter 数据
我正在使用 spring social 来获取特定标签的 Twitter 数据,比如 #spring。我想要实现的是获取两个日期/时间戳之间的所有数据。例如。上次获取时间和当前时间之间的数据。Spring 社交 API 允许我获取两个 tweetID 之间的数据,但我未能找到一种方法,可以在两个日期之间获取数据。
请帮忙。
安吉·索兰基
spring - 使用 spring social twitter 连接到 twitter
它解释了如何从 twitter 中检索朋友列表。
但是当我点击连接到推特时,它并没有连接到推特。
我在属性文件中有我的 appId 和 secretId,它位于类路径中,并且我对我在 twitter 上创建的应用程序具有读、写访问权限。
可能是什么问题呢
java - 为什么我通过 Spring Boot / Spring Social 指南示例获得与 twitter 的空连接?
我按照 spring.io 网站上的说明进行操作:http: //spring.io/guides/gs/accessing-twitter/
而且我没有连接。“findPrimaryConnection()”调用返回 null。我没有看到任何异常抛出。我确实在 .properties 文件中设置了 appId 和 appSecret。
这是控制器代码:
这是 HTML 表单:
spring-integration - Spring Twitter 集成,无法发送状态更新。详细错误:403:请求被理解,但已被拒绝
我正在关注 Mark Lui 和 Josh Long 的 Pro Spring Integration 书中的 Spring Twitter Integration 示例。
但收到错误提示无法发送状态更新。详细错误:403:请求被理解,但已被拒绝。
可能是什么问题呢
这是我的 TwitterOutbound.java
和 twitter-outbound.xml
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。
目前,结果按最近的顺序排列——但是,此顺序可能会受到未宣布的更改和最终一致性问题的影响。结果以 20 个用户为一组给出,并且可以在后续请求中使用 next_cursor 值导航多个结果“页面”。有关详细信息,请参阅使用光标导航集合。
我怎样才能做到这一点???
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
spring-social - 你可以有多个 HttpSessionStrategy 吗?
我希望有一个基于HttpSessionStrategy
下面列出的标头,但是 Spring Social 似乎希望将社交令牌存储在会话中。当它被重定向回应用程序时,没有x-auth-header
指定,因此创建了一个新会话并且令牌丢失了。
我们还能将HeaderSessionStrategy
with theCookieSessionStrategy
作为后备吗?
处理这个问题的最佳方法是什么?
spring - 如何通过providerId、accessToken和secret获取providerUserId?(春季社交)
在我的应用程序中,我可以通过 providerId 和 providerUserId 识别用户。但最初,我只有以下信息:
- 提供者 ID,
- 访问令牌,
- 秘密。
因此,我需要通过这些信息获取 providerUserId。
我正在尝试使用以下代码:
但问题是连接键未初始化:providerUserId 为空。
在这种情况下如何获得它?
spring - Spring Social Twitter 流返回未经授权的 HTTP 401
我尝试使用 spring-social-twitter 与 Twitter 建立流连接,但是当我尝试发出请求时,我得到了401 unauthorized
.
spring-social-twitter 正在尝试连接到https://stream.twitter.com/1.1/statuses/filter.json。response.getBody()
当我调试它并尝试获取HttpRetryException
详细信息时:cannot retry due to server authentication, in streaming mode
。
我对应用程序有适当的授权,但我没有访问令牌的授权,因为我在这里不需要它。我用1.1.0.RELEASE
版本。
我会很高兴你的帮助!
这是我对流的呼吁:
这是我的简单监听类: