.NET根据oauth授权机制获得新浪微博的coder然后模拟Post请求获得AccessToken

来源:互联网 发布:东方网络(002175)股吧 编辑:程序博客网 时间:2024/05/22 02:10

获得新浪微博AccessToken的步骤是这样的

参考:http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E


1.首先让用户对你的APP进行授权获得一个code

例如:点击下面链接授权后在url上会获得一个code参数

https://api.weibo.com/oauth2/authorize?client_id=3431190291&display=mobile&response_type=code&redirect_uri=http://www.cfxixi.com

2.将这个code发往服务器接口,服务器接收到code后执行下载文件中的代码返回AccessToken(或者直接在服务器那边拿到Token后进行微博API的各项操作)


代码示例:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weibo.com/oauth2/access_token");            request.Method = "POST";            request.ContentType = "application/x-www-form-urlencoded;";            request.Headers.Add(string.Format("Authorization: key={0}", "123456"));            string postData = "client_id=123456";            postData += ("&client_secret=123456");            postData += ("&grant_type=authorization_code");            postData += ("&redirect_uri=http://www.cfxixi.com");            postData += ("&code=123456");            byte[] byteArray = Encoding.UTF8.GetBytes(postData);            request.ContentLength = byteArray.Length;            Stream dataStream = request.GetRequestStream();            dataStream.Write(byteArray, 0, byteArray.Length);            dataStream.Close();            //發出Request            WebResponse response = request.GetResponse();            Stream responseStream = response.GetResponseStream();            StreamReader reader = new StreamReader(responseStream);            string responseStr = reader.ReadToEnd();            reader.Close();            responseStream.Close();            response.Close();


Demo下载可以去我的Q群共享下载250395324