最近公司要求实现一个绑定新浪微博 实现同步微博登录效果。
这个页面实现,我们还要添加DLL:NetDimension.Weibo.dll 可以网上下载
client_id就为appkey 如果微博入口有多个,处理出来不太方便
花了我一段时间 最算实现了效果。下面我讲讲我的实现过程,希望给予想做这方面开发的人一点帮助!
首先,我们要进去新浪微博开放平台http://open.weibo.com/创建一个我们的网站
在创建网站之前,如果你没身份验证,首先是要身份验证的(大概几个小时内可以审批下来)
根据条件创建网站,中间注意要你复制一段代码到发布的项目中去,然后等待审批(估计要点时间)
中间会返回一个AppKey以及一个AppSecret ;
审批通过之后 才正式进行我们开发过程
我们先看看整个流程http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html
管理中心>接口管理 里面有授权后的所有接口可以调用
授权机制里面。注意填写它的回调地址 如果测试用户可以填写http://127.0.0.1/Weibo.aspx(Weibo.aspx 为我们回调的页面)
public partial class wbAPI : System.Web.UI.Page
{
public const string AppKey = "207788581"; //请自行设置AppKey
public const string AppSecret = "cba11dad8522a7b1f32aefde396be"; //请自行设置AppSecret
public const string CallbackUrl = "http://www.miutrip.com/Weibo.aspx"; //请自行设置回调地址,一般这里不用填应用实际地址,填站内应用地址也是可以的
protected void Page_Load(object sender, EventArgs e)
{
#region 注意事项(绑定新浪微博)
/**
*这段代码放入你的触发时间处。绑定按钮,一般是在别的页面跳过
* 127.0.0.1本机IP 一般用于测试
* 8080 本机端口号
* Weibo.aspx为当前你的页面
* 授权申请成功之后,配置的返回路径应该为 http://www.miutrip.com/Weibo.aspx
* 调用微博信息 要添加NetDimension.Weibo.DLL文件
*/
// href="https://api.weibo.com/oauth2/authorize?client_id=207778561&response_type=code&redirect_uri=http://127.0.0.1:8080/Weibo.aspx"
#endregion
if (!IsPostBack)
{
var sign = Request["code"];
//var sign = "b3eb3bccbf4cd9399236a02a81cde4bf";
var oauth = new NetDimension.Weibo.OAuth(AppKey, AppSecret, CallbackUrl);
/*
* 正常的流程或Web流程:
* 1. 获取授权地址
* 2. 访问授权地址
* 3. 授权成功后自动跳转至callback指定的网站,并获得code
* 4. 通过code换取access token
*/
if (!string.IsNullOrEmpty(sign))
{
var accessToken = oauth.GetAccessTokenByAuthorizationCode(sign).Token;//注意:callback指定的url必须一致
oauth = new OAuth(AppKey, AppSecret, accessToken, "");
var sina = new Client(oauth);
var userInfo = sina.API.Dynamic.Users.Show(uid: sina.API.Entity.Account.GetUID());
//userInfo就为我们得到的用户信息
Response.Write(userInfo);
//Server.Transfer("CorpActivate.aspx", true);
}
}
}
这个页面实现,我们还要添加DLL:NetDimension.Weibo.dll 可以网上下载
微博入口:
<a href="#" οnclick="openwin()" class="wb_xl">新浪微博登陆</a>
function openwin() {
window.open("https://api.weibo.com/oauth2/authorize?client_id=144119704&response_type=code&redirect_uri=http://www.miutrip.com/Weibo.aspx", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行
}
client_id就为appkey 如果微博入口有多个,处理出来不太方便
可以在回调地址,也就是redirect_uri=
http://www.miutrip.com/Weibo.aspx?sinatype=Login
后面带一个参数 来区分那个入口传过来的值。
在weibo.aspx 获取就可以
string sinatype = Request.QueryString["Login"];
如果还有什么不了解,可以加我QQ315676647@qq.com 写上你的情况