新手问题 绑定新浪微博发微博

larryzhao · 2012年10月26日 · 最后由 larryzhao 回复于 2012年10月26日 · 3953 次阅读

之前分享到 weibo 都是用的 weibo 的 javascript 片段,这次想自己做个分享微博的界面,像知乎那样的,然后服务端 call api 去把他发出去。

昨天看了一下 weibo 的文档 (其实一直都没怎么看过), 想来请教一下,在绑定之后,具体是应该怎么操作在服务端获取已经绑定了的用户的 access_token? API 上看起来好像都是要再打开授权页面的,只不过如果已经授权,那么授权页面会一闪而过。

怎么做能像知乎那样分享呢?

https://github.com/plataformatec/devise https://github.com/intridea/omniauth https://github.com/beenhero/omniauth-weibo-oauth2

之前是用這三個 gem 做處理

  1. 先取得 access_token 存在 db
  2. 每個 request 都帶 access_token

不過微博的限制頗多,像是 access_token 的 expire time 和禁止獲取 email....,不知道現在有無改進。

#1 楼 @hellolucky123 恩,这一步已经做好了,我不是很清楚的是 access_token expire 之后如何获取?我看 api 文档好像都要再带用户到授权页面点一下?不知道我理解的是不是正确,求教

#2 楼 @larryzhao 應該是如此沒錯,或著寫信去要求更長的 expire time!

#2 楼 @larryzhao 每次用户使用新浪微博账号登录的时候,更新一下他的 token 就好,现在的 token 貌似是一个星期有效吧,你们不会在用户不登录的时候偷偷摸摸发什么东西吧?

@hellolucky123 @fresh_fish 感谢,偷偷摸摸肯定不会拉,呵呵,那不是自封流氓么。

那就是说如果假设是一个星期有效的话,每过一个星期就一定要打开一次授权页面才能更新 token 是么?

是啊,现在微博就是这样啊,每次连接的话得重新授权,这时候你更新一下用户的 access_token 就行了。

#5 楼 @larryzhao 微博目前应该没有提供刷新 token 的接口

@fresh_fish 多谢啊,我看 douban 的文档是提供了 refresh token 的,那样的话是不是我可以后台不断的用 refresh token 去延长 access token 的时间?就可以一直保持有有效的 access token 了?

#8 楼 @larryzhao 豆瓣我不清楚 按理说应该可以这样的吧

新浪微博好像不提供 refresh token... 至少我夏天看的时候是这样 所以当 acess token 过期以后 需要用户手动登陆去点一下那个授权才可以... 好像已经被回答过了 =__,=

@leozwa 是的,现在也不提供 refresh token.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号