Back to the topic,becouse qDou release depends on qOAuth and oAuth request using the HMAC-SHA1 signature method.
On the Windows or linux,In order to do that
the following steps are
1. build OpenSSL 0.9.6+
2. build qca-2.0.0
3. build the qca plugin for OpenSSL (the Capabilities of qca-ossl contains HMAC_SHA1)?
4. build qOAuth
But on the Symbian,as a result of different platform,you will have a lot of work to do.
even though you achieved,Maybe It doesn't work at last and you will get into trouble when deploy your apps on Symbian.em.........There is a easy way,Look this.
How to generate oauth signature using HMAC-SHA1 in Symbian C++
Follow These Tips .
we just need to do little stuff
1.add macro Q_OS_SYMBIAN to remove anything about QCA from *.cpp or *.h in qOAuth when Precompiled
2.generating your own random number method to replace the following codes
QCA::InitializationVector iv( 16 ); QByteArray nonce = iv.toByteArray().toHex();3.add these lines in function:createSignature
#ifdnef Q_OS_SYMBIAN
.....
.....
.....
#else
CSHA1* sha=CSHA1::NewL();
TBuf8<100> keyVal;
keyVal.Copy(_L8(QByteArray(consumerSecret + "&" + tokenSecret).constData()));
CHMAC* hmac=CHMAC::NewL(keyVal,sha);
TBuf8<1024> baseString;
TPtrC8 hashedSig(hmac->Hash(baseString));
TImCodecB64 b64enc;
b64enc.Initialise();
HBufC8* buf = HBufC8::NewL(hashedSig.Length() * 2);
buf->Des().Copy(hashedSig);
TBuf8<512> result;
b64enc.Encode(buf->Des(),result);
result.Copy(result.Left(result.Length()));
if(hmac)
{
delete hmac;
hmac=NULL;
}
digest = QByteArray::fromRawData((char*)result.Ptr(),result.Length());
#endif
It's very easy right?
hope this is useful for thoses like me who want to use qOauth on Symbian
see you.

能说一说那个QOauth具体怎么build么。。我研究了N久没搞明白。。
回复删除我重新将qt4编译了一次,这次带上了openSSL。
之后又build了QCA。
build QCA的plugin的时候,它提示我EVP_md2没有声明,毫无办法之下,将那个源文件里面EVP_md2通通注释掉。然后得了个阉割的dll。。
然后我又build了QOAuth,得到qoauth1.dll和qoauth1d.dll,现在是不知道怎么将它弄进项目中。不知道怎么将这些东西放到Qt文件夹里面。能说一下么?谢谢~~
@Morr
回复删除那是QCA编译的时候在linux下的一个bug,需要修改一下源码,
具体是怎样的,我搞忘了,错误google一下,应该OK,windows下是没有问题的。
1. build OpenSSL 0.9.6+
2. build qca-2.0.0
3. build the qca plugin for OpenSSL (the Capabilities of qca-ossl contains HMAC_SHA1)?
4. build qOAuth
这4步完成了之后,
你还需要把openssl编译之后生成的libeay32.dll和ssleay32.dll放在你的工程目录下....
希望你能编译成功 :-)
哈,我后来又自己搞掂了。。
回复删除Thank you!
回复删除I just wanted you all to know that if you want OAuth with Qt on Symbian but you don't want to compile QCA separately, you can check you kQOAuth: http://www.johanpaul.com/blog/kqoauth/
回复删除It's a Qt OAuth library that has no external dependencies so it is working very easily for Symbian. Just as any other Qt lib.
@Kypeli
回复删除Great.
Thanks for your information.
It really makes my work easier.