2019独角兽企业重金招聘Python工程师标准>>>

提交的方法:

public void getRequestToken()
    {

OAuthBase oAuth = new OAuthBase();//需要引用DLL
    string apiKey = "";//申请的App Key
    string apiKeySecret = "";//申请的App Secret
    string appReturnUrl = "";//返回的url
    string requestTokenUri = "http://api.t.sina.com.cn/oauth/request_token";
    string AUTHORIZE = "http://api.t.sina.com.cn/oauth/authorize";
    string ACCESS_TOKEN = "http://api.t.sina.com.cn/oauth/access_token";
        Uri uri = new Uri(requestTokenUri);
        string nonce = oAuth.GenerateNonce();//获取随机生成的字符串,防止攻击
        string timeStamp = oAuth.GenerateTimeStamp();//发起请求的时间戳
        string normalizeUrl, normalizedRequestParameters;
        // 签名
        string sig = oAuth.GenerateSignature(uri, apiKey, apiKeySecret, string.Empty, string.Empty, "GET", timeStamp, nonce, string.Empty, out normalizeUrl, out normalizedRequestParameters);
        sig = HttpUtility.UrlEncode(sig);
        //构造请求Request Token的url
        StringBuilder sb = new StringBuilder(uri.ToString());
        sb.AppendFormat("?oauth_consumer_key={0}&", apiKey);
        sb.AppendFormat("oauth_nonce={0}&", nonce);
        sb.AppendFormat("oauth_signature={0}&", sig);
        sb.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1");
        sb.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sb.AppendFormat("oauth_version={0}", "1.0");
        //请求Request Token
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sb.ToString());
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader stream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
        string responseBody = stream.ReadToEnd();
        stream.Close();
        response.Close();
        int intOTS = responseBody.IndexOf("oauth_token=");
        int intOTSS = responseBody.IndexOf("&oauth_token_secret=");
        Session["oauth_token"] = responseBody.Substring(intOTS + 12, intOTSS - (intOTS + 12));
        Session["oauth_token_secret"] = responseBody.Substring((intOTSS + 20), responseBody.Length - (intOTSS + 20));
        Response.Redirect(AUTHORIZE + "?oauth_token=" + Session["oauth_token"] + "&oauth_callback=" + appReturnUrl);
    }
返回页面方法:

OAuthBase oAuth = new OAuthBase();

string apiKey = "";//申请的App Key
    string apiKeySecret = "";//申请的App Secret
    string requestTokenUri = "http://api.t.sina.com.cn/oauth/request_token";
    string AUTHORIZE = "http://api.t.sina.com.cn/oauth/authorize";
    string ACCESS_TOKEN = "http://api.t.sina.com.cn/oauth/access_token";
    protected string imagesUrl = "http://tp2.sinaimg.cn/1134706865/50/0/1";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (!string.IsNullOrEmpty(Request["oauth_verifier"]))
            {
                getAccessToken(Request["oauth_token"].ToString(), Request["oauth_verifier"].ToString());
            }
        }
    }
    public void getAccessToken(string requestToken, string oauth_verifier)
    {
        Uri uri = new Uri(ACCESS_TOKEN);
        string nonce = oAuth.GenerateNonce();
        string timeStamp = oAuth.GenerateTimeStamp();
        string normalizeUrl, normalizedRequestParameters;
        // 签名
        string sig = oAuth.GenerateSignature(
        uri,
        apiKey,
        apiKeySecret,
        requestToken,
        Session["oauth_token_secret"].ToString(),
        "Get",
        timeStamp,
        nonce,
        oauth_verifier,
        out normalizeUrl,
        out normalizedRequestParameters);
        sig = oAuth.UrlEncode(sig);
        //构造请求Access Token的url
        StringBuilder sb = new StringBuilder(uri.ToString());
        sb.AppendFormat("?oauth_consumer_key={0}&", apiKey);
        sb.AppendFormat("oauth_nonce={0}&", nonce);
        sb.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sb.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1");
        sb.AppendFormat("oauth_version={0}&", "1.0");
        sb.AppendFormat("oauth_signature={0}&", sig);
        sb.AppendFormat("oauth_token={0}&", requestToken);
        sb.AppendFormat("oauth_verifier={0}", oauth_verifier);
        //请求Access Token
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sb.ToString());
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader stream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
        string responseBody = stream.ReadToEnd();
        stream.Close();
        response.Close();
        int intOTS = responseBody.IndexOf("oauth_token=");
        int intOTSS = responseBody.IndexOf("&oauth_token_secret=");
        int intUser = responseBody.IndexOf("&user_id=");
        Session["oauth_token"] = responseBody.Substring(intOTS + 12, intOTSS - (intOTS + 12));
        Session["oauth_token_secret"] = responseBody.Substring((intOTSS + 20), intUser - (intOTSS + 20));
        Session["User_Id"] = responseBody.Substring((intUser + 9), responseBody.Length - (intUser + 9));
        verify_credentials();
    }
    public void verify_credentials()
    {
        Uri uri = new Uri("http://api.t.sina.com.cn/account/verify_credentials.xml");
        string nonce = oAuth.GenerateNonce();
        string timeStamp = oAuth.GenerateTimeStamp();
        string normalizeUrl, normalizedRequestParameters;
        // 签名
        string sig = oAuth.GenerateSignature(
        uri,
        apiKey,
        apiKeySecret,
        Session["oauth_token"].ToString(),
        Session["oauth_token_secret"].ToString(),
        "Get",
        timeStamp,
        nonce,
        string.Empty,
        out normalizeUrl,
        out normalizedRequestParameters);
        sig = HttpUtility.UrlEncode(sig);
        StringBuilder sb = new StringBuilder(uri.ToString());
        sb.AppendFormat("?oauth_consumer_key={0}&", apiKey);
        sb.AppendFormat("oauth_nonce={0}&", nonce);
        sb.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sb.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1");
        sb.AppendFormat("oauth_version={0}&", "1.0");
        sb.AppendFormat("oauth_signature={0}&", sig);
        sb.AppendFormat("oauth_token={0}&", Session["oauth_token"].ToString());
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sb.ToString());
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader stream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
        string responseBody = stream.ReadToEnd();
        stream.Close();
        response.Close();
        ShowInfo(responseBody);
      
    }
    private void ShowInfo(string body)//显示信息
    {
        XmlDocument xml = new XmlDocument();
        xml.LoadXml(body);
        XmlNode XNSpec = xml.SelectSingleNode("user");
        XmlNodeList XLlist = XNSpec.ChildNodes;
        string name = "";
        foreach (XmlNode xnnode in XLlist)
        {
            if (xnnode.Name == "id")
            {
                sinaId = xnnode.InnerText;
            }
            if (xnnode.Name == "name")
            {
                name = xnnode.InnerText;
            }
            if (xnnode.Name == "profile_image_url")
            {
                imagesUrl = xnnode.InnerText;
            }
            if (xnnode.Name == "gender")
            {
                switch (xnnode.InnerText)
                {
                    case "m":
                        sex = "1";
                        break;
                    case "f":
                        sex = "2";
                        break;
                }
            }
        }
        hlblUserId.Value = sinaId;
        lblUserNiName.Text = name;
        hlblSex.Value = sex;
    }

DLL下载地址:

新浪微博登录接口DLL.rar

转载于:https://my.oschina.net/ypimgt/blog/69656

新浪微博登录接口实例相关推荐

  1. CI框架下 新浪微博登录接口完整版

    https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...

  2. php新浪微博 登录接口文档,qq登录,新浪微博登录接口申请过程中遇到的问题

    接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...

  3. qq 新浪微博 第三方登录 api php,qq登录,新浪微博登录接口申请过程中遇到的问题...

    1,qq登录接口申请 申请地址是:http://connect.opensns.qq.com/,登录进去后,点击右上方的登录.然后填写信息就行了. 我遇到的问题是在域名审核时,域名审核就是不通过,没办 ...

  4. 第三方新浪微博登录接口之web+php 获取用户信息

    先下载php SDK文档,下载地址https://github.com/xiaosier/libweibo,如果没有的话,就在http://open.weibo.com/wiki/SDK里面找php  ...

  5. php新浪微博 登录接口文档,最新新浪微博网站接入API接口的具体步骤wordpress

    今天折腾了下新浪的微博登录方式,有了前面的QQ登录开发经验,对于这次的开发就简单得多了.wordpress微博接入,php微博接入,wordpress微博登陆,php微博登陆 一.获取CODE 官方文 ...

  6. php新浪微博 登录接口文档,新浪微博的账号登录及PHP api操作

    新浪微博 的账号登录及api操作,使用oauth 2.0 官方提供的sdk都太过庞大,这是我自己简化的,提供简单的账号登录.获取个人信息.发布微博等功能,如果需要其他功能可以根据官方的api文档自行添 ...

  7. android 新浪微博登录接口,[Android] 使用新浪微博SDK进行SSO登录

    1. 简述 现在已经是2013年7月份了,最新的SDK还是去年8月份出的,最近没怎么更新的说. SDK的下载链接:http://open.weibo.com/wiki/SDK,其中文档内容很详细,本文 ...

  8. php抓取新浪微博数据抓取,php获取新浪微博数据API实例

    php获取新浪微博数据API实例 发布于 2014-11-29 12:36:06 | 118 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  9. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解

    参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...

最新文章

  1. JavaScript字符串数组拼接的性能测试及优化方法
  2. TMG2010 之创建访问规则
  3. Spring2.5.6学习笔记-实例化bean的几种方法
  4. 如何在MDI中相同的子窗体只保留一个实例
  5. 【深度学习】在PyTorch中构建高效的自定义数据集
  6. wxWidgets:wxAuiManager类用法
  7. sort and uniq
  8. 2021宁夏英语高考成绩查询,2021宁夏高考成绩官方查询时间及入口
  9. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  10. 初学者怎么自学python编程_怎样自学python编程?从零开始学习python,400集免费教程!...
  11. java web 润乾报表教程_润乾报表开发 基础教程.ppt
  12. C语言访问存储器的方法
  13. [转] Gmail 的Host解决方案
  14. Try using .loc[row_indexer,col_indexer] = value instead
  15. Jenkins下的Pipeline流水线入门篇
  16. <2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame (一)—— 概况与 .rc 文件
  17. 我读“世界500强面试题”
  18. 魏尔斯特拉斯---严谨的典范
  19. 协作:一份来自RChain的倡议书(上篇)
  20. 计算机 电脑 整机 加密,如何加密文件夹

热门文章

  1. YOLO算法最全综述:从YOLOv1到YOLOv5
  2. 如何使ResNet优于EfficientNet?
  3. 别太把图神经网络当回事儿
  4. 理解卷积神经网络中的自注意力机制
  5. 又一联盟成立:清华、北大、深大、南科大、哈工大等12家在深单位加盟
  6. Hinton等6位图灵奖得主、百余位顶级学者邀你加入群聊,共话人工智能下一个十年...
  7. 太赞!639 页《深度学习:Deep Learning》硬核课程 PPT 下载
  8. 拉格朗日乘数法的原理,我用10幅图把它讲清楚了
  9. binary格式和ELF格式区别。用ida打开的样子
  10. 信息工程大学806自主命题2020年回忆版真题2020年信息工程大学,初试806回忆版