• 使用QOAuth来进行新浪/腾讯微博验证(一)


    在上篇文章Qt简介以及如何配置Qt使用VS2010进行开发以及微博是个大金矿,使用VS2010编译QOAuth支持微博通用认证OAuth实现SINA微博登陆中向大家介绍了如何编译Qt及QOauth,在这篇文章中我会用实例的方式来介绍如何使用QOAuth来通过新浪或者腾讯微博验证。

    由于边写代码别写博文,进度会比较慢,会以多篇文档的方式来完成整个文章。由于OAuth基本上分为3个部分

    • requestToken
    • 各个网站自定义验证
    • accessToken

    这篇文章作为该系列的第一篇,主要介绍下如何完成Api的申请和项目的搭建以及接口的部分设计。

    1. 为了创建新浪/腾讯微博的应用程序,首先要注册成为开发者。

    新浪API的注册地址: http://open.t.sina.com.cn/

    腾讯API的注册地址:http://open.t.qq.com/

    进行注册之后会获得App Key和App Secret:这个是OAuth验证用来通过requestToken的必备参数,下图是我注册后的新浪和腾讯微博的截图

    image

    新浪微博应用截图

    image

    腾讯微博应用截图

    2. 在获得了调用资格后我们正式开始我的微博验证之旅。首先我们先创建一个Qt的应用程序,选择File-New-Project

    image

    选择Qt4Project,输入项目名称“MyMicro-blog”

    image

    选择OK,连续选择两次Next,到以下界面,Base class:选择QDialog,Class name:输入LoginMicroblog, 选择Finish结束创建向导

    image

    3. 设计

    由于我们想在程序中支持新浪和腾讯的微博登陆,而且除第二步执行方式不同外,第一步和第三步执行方式相同,所有首先我们定义一个接口,为了让程序有更好的结构,我们创建一个静态库来放置接口及后面的实现。

    在解决方案上点击右键,选择Add-New Project…

    image

    选择Qt Library,并输入名字MyMicro-blogLib

    image

    选择OK,在下一个界面选中Create Static Library(.lib),选中Next

    image

    在Class name:中输入IMicroblog,点Finish

    image

    首先我们定义接口成下面这个样子

    image

    virtual bool requestToken();
    virtual bool customAouth(const QString & userName,const QString & password) = 0;
    virtual bool accessToken();
    virtual int error() const;

    可以看到前三个函数对于OAuth认证的三个通用方法,都是bool型的,最后面是一个error函数,如果认证出错返回具体出错代码

    下一步就要定义属性了,从前面知道我们需要知道App Key和App Secret这两个属性,由于这两个属性是可修改的,该属性是可读可写

    经过进一步查看OAuth的实现,我们可以看到在requestToken后,服务器会返回oauth_token和oauth_token_secret两个参数,这两个参数在后面有大用处,所以需要增加这两个属性,由于这两个属性是服务器给的,所以只要只读就可以了

    由于C++不支持属性,修改后成为这个样子

    image

    class IMicroblog
    {
    public:
    
        virtual bool requestToken();
        virtual bool customAouth(const QString & userName,const QString & password) = 0;
        virtual bool accessToken();
        virtual int error() const;
    
        QString appKey() const;
        void setAppKey(const QString & appkey); 
        QString appSecret() const;
        void setAppSecret(const QString & appsecret);
        QString oauthToken() const;
        QString oauthTokenSecret() const;
    
    protected:
        QString _appKey;
        QString _appSecret;
        QString _oauthToken;
        QString _oauthTokenSecret;
    };

    不知不觉写了一下午,好累啊,下一篇咱们继续,先闪!

  • 相关阅读:
    c#类,接口,结构,抽象类介绍 以及抽象和接口的比较
    存储过程基本语法
    有关uploadifive的使用经验
    堆栈的浅析
    JavaScript语言精粹4递归(汉诺塔游戏寻常解)及作用域
    JavaScript语言精粹3异常,扩充类型功能
    有关this,4种调用模式小例子
    JavaScript语言精粹2函数对象,函数字面量,调用
    JavaScript语言精粹1字符串,对象字面量
    JQUERY选择器第一天
  • 原文地址:https://www.cnblogs.com/rockhawk/p/1936770.html
Copyright © 2020-2023  润新知