Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

BiliAccount.Core

Leo Chen edited this page Jan 21, 2020 · 8 revisions

命名空间结构

文件 类名 关键字 描述
Core.cs ByPassword internal 通过密码登录实现
ByQrCode internal 通过二维码登录实现

ByPassword

公开属性

属性名 类型 描述
Appkey string Appkey
Appsecret string Appsecret
Build string Build
User_Agent string User_Agent

私有属性

属性名 类型 描述
TimeStamp long Unix时间戳

公开方法

方法名 返回类型 描述
DoLogin void 登录
DoLoginWithCatpcha void 登录(带验证码)
GetCaptcha System.Drawing.Bitmap 获取/刷新验证码图片
EncryptPwd string 密码加密
GetKey void 获取key
Init void 初始化登录模块
IsTokenAvailable bool 检查token可用性
RefreshToken System.DateTime? token续期
SSO object[] SSO换取Cookies

私有方法

方法名 返回类型 描述
GetMD5 string 获取字符串md5
GetSign string 获取参数签名
LoginSuccess void 初步登录成功判断
UrlEncode string UrlEncode

私有类

类名 描述
DoLogin_DataTemplete 登录数据模板
GetKey_DataTemplete GetKey返回值的数据模板
Init_DataTemplete 初始化数据模板
IsTokenAvailable_DataTemplete 检查token可用性数据模板
RefreshToken_DataTemplete token续期数据模板

公开方法

DoLogin

原型

public static void DoLogin(ref Account account)

参数

参数名 类型 描述
ref account Account 账号信息实例

DoLoginWithCatpcha

原型

public static void DoLoginWithCatpcha(string captcha, ref Account account)

参数

参数名 类型 描述
captcha string 验证码字符
ref account Account 账号信息实例

GetCaptcha

原型

public static Bitmap GetCaptcha(ref Account account)

参数

参数名 类型 描述
ref account Account 账号信息实例

返回值

System.Drawing.Bitmap 验证码图片

EncryptPwd

原型

public static string EncryptPwd(string password, string key, string hash)

参数

参数名 类型 描述
password string 账号信息实例
key string key
hash string hash

返回值

string 加密后的密码

GetKey

原型

public static void GetKey(out string hash, out string key, out CookieCollection cookies)

参数

参数名 类型 描述
out hash string 输出hash
out key string 输出key
out CookieCollection System.Net.CookieCollection 输出cookies集合实例

Init

原型

public static void Init()

其他

本函数用于与后端服务器交互获取登录请求参数,默认无需修改,zhangbudademao.com将提供后端服务并将请求资源维护在最新版本;但如有需要可以自行修改Init.json上传自己的服务器,并修改本函数请求地址使用私有后端。

示例
/// <summary>
/// 初始化登录模块
/// </summary>
public static void Init()
{
    string str = Http.GetBody("http://abc.sample.com/Init.json");

    if (!string.IsNullOrEmpty(str))
    {
#if NETSTANDARD2_0 || NETCORE3_0
        Init_DataTemplete obj = JsonConvert.DeserializeObject<Init_DataTemplete>(str);
#else
        Init_DataTemplete obj = (new JavaScriptSerializer()).Deserialize<Init_DataTemplete>(str);
#endif
        Appkey = obj.appkey;
        Appsecret = obj.appsecret;
        Build = obj.build;
        User_Agent = obj.user_agent;
    }
    else
    {
        throw new Exception("Login module initialization failure.");
    }
}

IsTokenAvailable

原型

public static bool IsTokenAvailable(string access_token)

参数

参数名 类型 描述
access_token bool AccessToken

返回值

bool AccessToken是否可用

RefreshToken

原型

public static DateTime? RefreshToken(string access_token, string refresh_token)

参数

参数名 类型 描述
access_token string AccessToken
refresh_token string RefreshToken

返回值

System.DateTime? 新的AccessToken过期时间

SSO

原型

public static object[] SSO(string access_token)

参数

参数名 类型 描述
access_token string AccessToken

返回值

object[]

索引 类型 描述
0 string Cookies字符串(相当于AccountstrCookies
1 string csrf值(相当于AccountCsrfToken
2 System.DateTime 过期时间(相当于AccountExpires_Cookies
3 System.Net.CookieCollection Cookies集合实例(相当于AccountCookies

私有方法

GetMD5

原型

private static string GetMD5(string str)

参数

参数名 类型 描述
str string 要获取MD5的字符串

返回值

string MD5字符串

GetSign

原型

private static string GetSign(string strReq)

参数

参数名 类型 描述
strReq string 请求字符串

返回值

string 签名字符串

LoginSuccess

原型

private static void LoginSuccess(DoLogin_DataTemplete obj, ref Account account)

参数

参数名 类型 描述
obj DoLogin_DataTemplete 登录返回数据体
ref account Account 账号信息实例

UrlEncode

原型

private static string UrlEncode(string str)

参数

参数名 类型 描述
str string 要urlencode的字符串

返回值

string urlencode后的字符串


ByQrCode

私有字段

字段名 类型 描述
Monitor System.Threading.Timer 状态监视器
Refresher System.Threading.Timer 刷新监视器

公开方法

方法名 返回类型 描述
CancelLogin void 取消登录
GetQrcode System.Drawing.Bitmap 获取登陆二维码

私有方法

方法名 返回类型 描述
MonitorCallback void 状态监视器回调
RefresherCallback void 刷新监视器回调

私有类

类名 描述
GetQrcode_DataTemplete 获取二维码的数据模板
MonitorCallBack_Templete 状态监视器回调数据模板

公开方法

CancelLogin

原型

public static void CancelLogin()

GetQrcode

原型

public static Bitmap GetQrcode()

私有方法

MonitorCallback

原型

private static void MonitorCallback(object o)

参数

参数名 类型 描述
o object (空)

RefresherCallback

原型

private static void RefresherCallback(object state)

参数

参数名 类型 描述
state object (空)