基于新浪开放平台的企业微博影响力分析应用的学习笔记。

来源:互联网 发布:mac itunes不显示铃声 编辑:程序博客网 时间:2024/06/14 20:07

新浪接口

  不得不说,新浪接口是在不断补充和改进中前行的。我个人在写下面的东西要告诉大家的事情是

 1代新浪接口与2代新浪接口的验证信息以及方法都是不共用的,即,2代验证后的access不能用在1代接口的参数中,用也是错的。

其次,2代接口要求的几样东西需要大家清楚:1)应用app_key,app_secret;2)在新浪应用--高级信息中填写回调地址callback_url,这个都是必须的,因为会验证,如果你在调用的过程当中没写清楚,回来的必然是接口mismatch错误。

 1、 json反序列化

新浪接口返回来的是json格式的信息,需要我们反序列化,我个人是将返回的参数放到对象中调用,下面是一个例子。

2012-3-9补充:加入了JSON反序列化成某对象的集合的方法。.NET2.0需要另外下载调用Newtonsoft.Json.dll;

对象:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Runtime.Serialization;
/// <summary>
/// AccessToken 的摘要说明
/// </summary>
///    
[DataContract]
public class AccessTokenObject
{
    /// Represents the user ids.
    /// </summary>
    ///http://www.baigelong.com/#access_token=2.00HhJd1CkaGmpB907f44bb37wf9zyC&expires_in=86400&remind_in=72302&uid=2137124445
    private string _access_token= "";
    private string _expires_in = "";
    private string _remind_in="";
      private string _uid="";
    public AccessTokenObject()
 {
  // TODO: 在此处添加构造函数逻辑
  //
 }
    /// <remarks/>
    [DataMember(Name = "access_token")]
    public string access_token
    {
        get { return _access_token; }
        set { _access_token = value; }
    }
    [DataMember]
   
    public string expires_in
    {
        get { return _expires_in; }
        set { _expires_in = value; }
    }
    [DataMember]
   
    public string remind_in
    {
        get { return _remind_in; }
        set { _remind_in = value; }
    }
    /// <remarks/>
    ///
    [DataMember(Name = "uid")]
    public string uid
    {
        get { return _uid; }
        set { _uid = value; }
    }


}

 

方法:

//反序列化成一个对象

public static T JsonToObject<T>(string jsonStr) where T : class
        {
            T result = null;
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
            {
                 result = ser.ReadObject(ms) as T;
            }

            return result;
        }

//反序列化成某一个对象的集合

public static Collection<T> JSONStringToList<T>(string JsonStr) where T : class
          {

              Collection<T> Data = JavaScriptConvert.DeserializeObject<Collection<T>>(JsonStr);
              return Data;
         }  

 

 

使用:

private string ACCESS_TOKEN = "https://api.weibo.com/oauth2/access_token";

ACCESS_TOKEN += "?client_id="+ this.appKey+"&client_secret="+this.appSecret+"&grant_type=authorization_code&redirect_uri=http://www.baigelong.com&code="+this.code;

//发送请求
            string response = oAuthWebRequest(Method.POST, ACCESS_TOKEN, string.Empty);

//新建对象

            AccessTokenObject accesstokenobject = new AccessTokenObject();

//返回信息

            if (response.Length > 0)
            {
                accesstokenobject = JsonSerializationHelper.JsonToObject<AccessTokenObject>(response);
            }
            return accesstokenobject;

 

 jquery类

1、做折叠层

代码比较简单,自己推敲。里面都是jquery的基本特效,没太复杂的东西。

fadeIn,fadeOut方法可选

fadeIn("slow or fast",callback function);

fadeIn("slow or fast");

 

1)网页代码

 <table width="100%" cellpadding="0" cellspacing="0">
       <tr>
                <td class="td_clumn">说明</td>
               
                </tr>
                 <tr>
                    <td class="td_row"><a href="#" id="qst1" class="qst" onclick="read();">什么是微博影响力?</a></td>
                </tr>
                <tr>
                    <td class="td_row">
                    <div id="as1" visible="false" class="as">
                        <p>曾经有一份真诚的爱情摆在我的面前<br>但是我没有珍惜<br>等到了失去的时候才后悔莫及<br>尘世间最痛苦的事莫过于此<br>如果上天可以给我一个机会再来一次的话<Br>我会跟那个女孩子说'我爱你'<br>如果非要把这份爱加上一个期限<br>我希望是一万年!</p>
                    </div>

                    </td>
                </tr>
         </tr>
            </table>
          

2)JS方法

function read(){
    var id = window.event.srcElement.id;
    id = "#as"+id.charAt(id.length-1);
    if($(id).attr("visible")=="false"){
        $(id).fadeIn("slow",function(){$(id).attr("visible",true)});
    }else{
        $(id).fadeOut("slow",function(){$(id).attr("visible","false")});   
    }
  }

 

原创粉丝点击