今天早些时候,我们的Web应用程序的Facebook登录流程已停止为某些用户工作.当我们尝试获取当前配置文件时,会返回错误.它声称我们刚刚通过将用户重定向到OAuth登录流程而生成的访问令牌已被拒绝.
给出的理由是:
访问令牌无效,因为用户未在超过90天内使用该应用
对我来说,这没有任何意义,因为我们不会将访问令牌存储在除当前会话之外的任何位置,并且每次用户使用Facebook登录时都会重新创建它.
来自Spring Social的GET /me电话跟踪调用如下所示:
ERR c.s.f.v.resource.AuthenticationResource Exception when connecting with Facebook
org.springframework.social.RevokedAuthorizationException: The authorization has been revoked. Reason: The access token is invalid since the user hasn't engaged the app in longer than 90 days.
at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleFacebookError(FacebookErrorHandler.java:85)
at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleError(FacebookErrorHandler.java:59)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:775)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:728)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:702)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:350)
at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchObject(FacebookTemplate.java:220)
at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchObject(FacebookTemplate.java:215)
Run Code Online (Sandbox Code Playgroud)
问题可能与Facebook API的变化有关,但我不知道这会如何影响我们在每次登录时创建的短期访问令牌.
是否可以将片段传递给Thymeleaf中的消息表达式?我想重新使用片段在消息中创建链接.
我的片段看起来像这样:
<div th:fragment="link(url, text)" th:remove="tag">
<a th:href="@{${url}}"><span>${text}</span></a>
</div>
Run Code Online (Sandbox Code Playgroud)
我有这样的信息:
home.welcome=Hello User! See new content at {0}.
Run Code Online (Sandbox Code Playgroud)
现在我想将评估的片段传递给消息表达式(伪代码):
<p th:utext="#{home.welcome(${link:: link(url='myUrl', text='myText')})}"></p>
Run Code Online (Sandbox Code Playgroud)
生成的HTML应如下所示:
<p>
Hello User! See new content at <a href="myUrl"><span>myText</span></a>.
</p>
Run Code Online (Sandbox Code Playgroud)
我发现在Thymeleaf 3中引入了Fragment表达式,但我不确定它们是否可行.
是否可以仅在提交消息中出现某个字符串时触发Hudson/Jenkins构建?
例如,我想触发一个构建,通过编写如下提交消息将我的应用程序推广到开发环境:
MYPROJECT-123修复了MyClass.java中的NPE #deploy:DEV
在关于Continuos部署的精彩演讲中描述了一般的想法,但我找不到有关如何在Hudson中执行此操作的任何信息.
我更喜欢在Hudson本身中使用此行为,而不是在诸如commit-hooks或web-hooks之类的外部系统中.
continuous-integration commit-message hudson build continuous-deployment