使用新浪微博开放平台api同步微博内容至自己网站(实现一个绑定新浪微博实现同步微博登录效果的方便)
优采云 发布时间: 2022-01-17 17:09使用新浪微博开放平台api同步微博内容至自己网站(实现一个绑定新浪微博实现同步微博登录效果的方便)
近日,公司要求实现绑定新浪微博,以达到同步微博登录的效果。
我花了一段时间才充分利用它。下面说说我的实现过程,希望能给想做这个开发的人一些帮助!
首先我们要到新浪微博开放平台创建我们的网站
在创建网站之前,如果没有认证,需要先认证(几小时内可以审核通过)
根据条件创建网站,中间注意复制一段代码到发布的项目,然后等待审批(估计点时间)
中间会返回一个A*敏*感*词*ey和一个AppSecret;
批准后,我们将正式开始我们的开发过程
我们先来看看整个过程
在管理中心 > 接口管理中有所有可以调用的授权接口
在授权机制里面。如果测试用户可以填写/Weibo.aspx,请注意填写其回调地址(Weibo.aspx是我们的回调页面)
public partial class wbAPI : System.Web.UI.Page
{
public const string A*敏*感*词*ey = "207788581"; //请自行设置A*敏*感*词*ey
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(A*敏*感*词*ey, 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(A*敏*感*词*ey, 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 可以在线下载
微博入口:
新浪微博登陆
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 是 a*敏*感*词*ey。如果有多个微博条目,不方便处理。
可以在回调地址中,即redirect_uri=
http://www.miutrip.com/Weibo.aspx?sinatype=Login
后跟一个参数,用于区分该条目传递的值。
您可以在 weibo.aspx 获得它
string sinatype = Request.QueryString["Login"];
有什么不明白的可以加我@写下你的情况