挖井

类库大魔王的挖井日记

挖一口属于自己的井


Ninayan W.I.P.(12)

  本来排除在计划外的事情,今天又去搞了,就是支持Twip4。前一天也折腾过一下,没弄好,这回问了一下Twip4的作者@yegle,他开始说是计算数字签名时用https://api.twitter.com/作为base string就行了。我试了下不行,后来他又说试试T模式吧,有几个客户端是经过实践T模式没问题的。于是一下子就明白过来了。
  Twip4有T模式和O模式两种工作模式。T模式是完全的透明转发,Twip基本上不做任何处理,所以要请求oauth token和oauth token secret时原本是向https://api.twitter.com/oauth/access_token请求的,同时也是拿https://api.twitter.com/oauth/access_token作为base string计算数字签名的,在使用T模式的代理时,只要向http://www.myproxy.com/oauth/access_token请求就行了,仍然用https://api.twitter.com/oauth/access_token作为base string计算数字签名,这样就能无障碍获取oauth token和oauth token secret了。至于O模式,我看了下TweetDeck和Mixero的表现,发现它们也并不向O模式Twip请求oauth token和oauth token secret,或者请求了也没结果。所以我就推测其实O模式是没这功能的,O模式自己有consumer key和consumer secret,所以自己有一套oauth token和oauth token secret,但不是给客户端用的,即使客户端用自己有效的oauth token和oauth token secret发送给Twip请求,Twip也会把http header和url parameters里的东西处理一遍,用自己的那套oauth token和oauth token secret计算出来的东西替换掉。所以我想如果用O模式也要让用户可以无障碍认证的话,需要软件自己提供一个透明代理,软件先拿用户名和密码从那透明代理处获取oauth token和oauth token secret,然后在其他发布消息,收取消息时用O模式代理,就可以解决这个问题了。
  这倒是好了,但另外有个令人烦躁的问题是,还是有内存泄漏,经过排查,貌似最后定位在QML里的问题。每次向QML里setContextProperty,然后QML里又根据这个property构建UI,怀疑是在后面setContextProperty后,QML并没有及时或正确地把前面已经没用的UI资源释放掉。头痛!还得再仔细确认一下,到底是不是这个问题!

本文地址:

https://minidump.info/blog/2011/01/ninayan-w-i-p-12/

上一篇

Ninayan W.I.P.(11)

  好吧,其实没做什么,本来的计划是先做图片浏览和文章阅读的,可是饭否上的内容实在太单薄了点,呃,这纯粹是借口,于是今天实现了对Twitter的支持。  昨天晚上弄到1点半才基本搞好怎么用xAuth认证获取oauth token和oauth token secret,今天就把twitter的t...…

Ninayan SNS 全文阅读
下一篇

Ninayan W.I.P.(13)

  内存泄漏的问题,调得我心力交瘁,都有点神经衰弱了,甚至有点绝望,唉。以前还真没有过这种强烈的负面情绪出现过。  每次UI刷新,从任务管理器里看Mem Usage都会增加2-3MB,这得有多严重的泄漏啊!可是我自己的代码中new出来的对象都经过跟踪是销毁掉了的。于是又把矛头指向Qt内部,或者...…

Ninayan Qt SNS 全文阅读