我对LinkedIn的spring-social-api有一些麻烦。 60天后访问令牌过期,我无法使用它在访问令牌用户的时间线上发布。有一种方法可以通过这个错误?Linkedin刷新访问令牌
回答
重复我的回答从http://forum.springsource.org/showthread.php?138943-Linkedin-refresh-accesstoken:
虽然我不能诚实地说,我和LinkedIn试了一下,你应该能够获得(通过ConnectionRepository)连接和调用刷新()就可以了。事实上,这应该可以与任何OAuth2安全的API一起使用(除了那些不被OAuth2规范玩的Facebook)。
我还没有试用过LinkedIn,因为直到最近Spring Social还通过他们的OAuth 1.0a认证与LinkedIn合作。但是这听起来像是一件好事。
因此,Spring Social支持刷新访问令牌。但是,(1)捕获ExpiredAuthorizationException,(2)使用ConnectionRepository来获取Connection,以及(3)调用refresh()来更新连接,这是您的人工努力。
更令人敬畏的是,如果Spring Social以某种方式为您捕获ExpiredAuthorizationException,自动调用refresh(),然后重新尝试触发异常的调用;使呼叫者无缝。这是我一直在琢磨的事情,但目前还没有实施。
一个可能的解决方案是一个方面。但是它需要由开发人员配置以正确包装应用程序正在使用的任何API绑定类型(例如LinkedInTemplate)。我正在考虑的另一个选项是挖掘AbstractOAuth2ApiBinding并配置它公开的RestTemplate来处理该异常。它是否可以工作有点不确定,但是如果它确实起作用,那么任何扩展了AbstractOAuth2ApiBinding的API绑定都会自动获得刷新功能......除了那些没有使用OAuth2规则的Facebook,再一次。
- 1. 使用Scribe刷新LinkedIn访问令牌
- 2. 刷新LinkedIn访问令牌自动
- 3. LinkedIn API OAuth刷新令牌
- 4. 刷新oauth linkedin令牌
- 5. 刷新linkedin用户访问令牌,无需用户干预
- 6. LinkedIn OAuth访问令牌刷新不增加到期时间
- 7. LinkedIn API - 刷新访问令牌后60天 - PHP
- 8. LinkedIn访问令牌检索
- 9. 生成LinkedIn访问令牌
- 10. 刷新访问令牌后弹出OAuth2刷新令牌
- 11. 问题与访问和刷新令牌
- 12. 如何刷新LinkedIn授权令牌
- 13. 在到期前刷新LinkedIn令牌omniauth
- 14. 如何使用linkedin-j更新linkedin oauth访问令牌?
- 15. OAuth 2请求新的访问令牌使用刷新令牌?
- 16. 使用刷新令牌获取新的访问令牌adal js
- 17. 使用个人api的刷新令牌更新访问令牌
- 18. SwiftMailer gmail oauth刷新访问令牌
- 19. Spotify API访问和刷新令牌
- 20. 使用刷新令牌访问Box Api
- 21. OAuth访问令牌和页面刷新
- 22. accountmanager刷新令牌(离线访问)
- 23. 无法刷新访问令牌 - 黑莓
- 24. 刷新访问令牌余烬
- 25. 访问/刷新令牌的使用
- 26. Yii2刷新Facebook的访问令牌
- 27. 支持自动刷新访问令牌?
- 28. 如何使用我的刷新令牌刷新我的google_oauth2访问令牌?
- 29. LinkedIn,401,无法验证访问令牌
- 30. 如何为LinkedIn生成访问令牌?
在这里检查文档我认为LinkedIn的“刷新”访问令牌的机制实际上与原始授权过程相同。看起来他们没有提供刷新令牌,可以通过后端API调用来获得新的访问令牌。 refresh()不会处理这种情况,会吗?看起来你必须确保定期通过授权流程发送用户来维护一个新的令牌。 http://developer.linkedin.com/documents/handling-errors-invalid-tokens – sdouglass
没错。在我写这个答案后,我意识到LinkedIn不会实现刷新令牌,而是要求您再次通过授权流程(Facebook也是这样做的)。这与规范有所不同,有点令人讨厌,但这种方式可以说更安全。无论如何,Spring Social的ReconnectFilter应该能够完美地处理这种情况。它现在可以在Spring Social 1.1.0.M3中找到。 –