LinkedIn应用开发系列 ---- 获取Request token.doc_第1页
LinkedIn应用开发系列 ---- 获取Request token.doc_第2页
LinkedIn应用开发系列 ---- 获取Request token.doc_第3页
LinkedIn应用开发系列 ---- 获取Request token.doc_第4页
LinkedIn应用开发系列 ---- 获取Request token.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LinkedIn应用开发系列(二) - 获取Request token 上一章节大概总结整理了一下具体开发一个Linkedin应用的一些步骤。 这一章节主要是第一个步骤的获取Request token。 通过请求/uas/oauth/requestToken 获取request token。 然而,请求获取一个Request token必须以下要求及的带请求参数 HTTP Method (POST)-post方式提交申请 Request URI (/uas/oauth/requestToken)-请求地址 oauth_callback-验证成功后回调跳转的地址 oauth_consumer_key -你申请的API KEY oauth_nonce -随机数 oauth_signature_method -加密方式oauth_timestamp-时间截签名 oauth_version -版本号 oauth_signature -签名 同时,这一步也分为三个小步骤: 1. 创建POST请求 2. 根据请求创建签名 3 .获取request token 好了,我们先看看第一步的POST请求,而这个个POST请求,需要类似下面的格式:POST&https%3A%2F%2F%2Fuas%2Foauth%2FrequestToken&oauth_callback%3Dhttp%253A%252F%252F%26oauth_consumer_key%3D8R4adR12-cVx7ySHO4tS62zkzYaSHVxhV0XY6lpyjCQn9YjR-nGn1OOmqdNdka_k%26oauth_nonce%3D2063151%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1274640507%26oauth_version%3D1.0当这个请求成功后,Linkedin就会输出带参数的字符串(如下), 那么oauth_token就是我们所需要的Request token了 oauth_token=e89ecb3f-1050-4062-be2d-446ee61d4c2e&oauth_token_secret=56db820b-6ffc-408f-81f7-6aee9f39b8cd&oauth_callback_confirmed=true&xoauth_request_auth_url=https%3A%2F%2F%2Fuas%2Foauth%2Fauthorize&oauth_expires_in=599那么,废话不多说,直接上代码,代码实在太长了,偶不想用太多文字去解释跟描述,代码就是最好的解释,开发人员最喜欢的就是代码了。如果太多文字的话,估计文字加代码的方式长长地拖下去让人看得晕晕的。里面都比较简单,下面的代码中,我们就可以得到了Request token了。 public string GenSignString(Uri url, string consumerKey, string token,string tokenSecret, string method, string callback, out string requestUrl,out string parameters) string nonce = random.Next(123400, 9999999).ToString(); TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); string timeStamp = Convert.ToInt64(ts.TotalSeconds).ToString(); requestUrl = string.Format(0:/12, url.Scheme,url.Host, url.AbsolutePath); StringBuilder sb = new StringBuilder(); string requestparameters = oauth_callback=0&oauth_consumer_key=1&oauth_nonce=2 &oauth_signature_method=HMAC-SHA1&oauth_timestamp=3&oauth_version=1.0; sb.AppendFormat(requestparameters, UrlEncode(callback),consumerKey, nonce, timeStamp); parameters = sb.ToString(); sb = new StringBuilder(); sb.AppendFormat(0&, method.ToUpper(); sb.AppendFormat(0&, UrlEncode(requestUrl); sb.AppendFormat(0, UrlEncode(parameters); return sb.ToString(); public void GenSign(Uri url, string _key, string _secret, string token, string tokenSecret, string method, string callback, out string requestUrl, out string parameters) string sigstring = GenSignString(url, _key, token, tokenSecret, method, callback, out requestUrl, out parameters); HMACSHA1 ha = new HMACSHA1(); ha.Key = Encoding.ASCII.GetBytes(string.Format(0&1, UrlEncode(_secret), string.IsNullOrEmpty(tokenSecret) ? : UrlEncode(tokenSecret); byte _buffer = System.Text.Encoding.ASCII.GetBytes(sigstring); byte _bytes = ha.ComputeHash(_buffer); string sig = Convert.ToBase64String(_bytes); parameters = parameters + &oauth_signature= + HttpUtility.UrlEncode(sig);public string GetRequestToKen() string rquestUrl = string.Empty; string query = string.Empty;string callback = http:/localhost/linkedin/callback.aspx; string url = /uas/oauth/requestToken; Uri uri = new Uri(url); GenSign(uri, this.ConsumerKey, this.ConsumerSecret, string.Empty, string.Empty, POST, callback, out rquestUrl, out query); string response = WebRequest(POST, rquestUrl, query); NameValueCollection qs = HttpUtility.ParseQueryString(response); return qsoauth_token;public string WebRequest(string method, string url, string postData) HttpWebRequest webRequest = null; StreamWriter requestWriter = null; string response = string.Empty; webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest; webRequest.Method = method; webRequest.ServicePoint.Expect100Continue = false; webRequest.Timeout = 10000; if (method.ToUpper() = POST) webRequest.ContentType = application/x-www-form-urlencoded; requestWriter = new StreamWriter(webRequest.GetRequestStream(); try requestWriter.Write(postData); catch throw; finally requestWriter.Close(); requestWriter = null; response

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论