Hishop.WeiBo.Api/SinaWeiboClient.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace Hishop.WeiBo.Api
{
    using Newtonsoft.Json.Linq;
    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Net.Http;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    using System.Threading.Tasks;

    public class SinaWeiboClient : OpenAuthenticationClientBase
    {
        private const string API_URL = "https://api.weibo.com/2/";
        private const string AUTH_URL = "https://api.weibo.com/oauth2/authorize";
        private const string TOKEN_URL = "https://api.weibo.com/oauth2/access_token";

        public SinaWeiboClient(string appKey, string appSecret, string callbackUrl, string accessToken = null, string uid = null) : base(appKey, appSecret, callbackUrl, accessToken)
        {
            base.ClientName = "SinaWeibo";
            this.UID = uid;
            if (!string.IsNullOrEmpty(accessToken) || !string.IsNullOrEmpty(uid))
            {
                base.isAccessTokenSet = true;
            }
        }

        public override void GetAccessTokenByCode(string code)
        {
            HttpResponseMessage message = base.HttpPost("https://api.weibo.com/oauth2/access_token", new { client_id = base.ClientId, client_secret = base.ClientSecret, grant_type = "authorization_code", code = code, redirect_uri = base.CallbackUrl });
            if (message.StatusCode == HttpStatusCode.OK)
            {
                JObject obj2 = JObject.Parse(message.Content.ReadAsStringAsync().Result);
                if (obj2["access_token"] != null)
                {
                    base.AccessToken = obj2.Value<string>("access_token");
                    this.UID = obj2.Value<string>("uid");
                    base.isAccessTokenSet = true;
                }
            }
        }

        public override string GetAuthorizationUrl()
        {
            UriBuilder builder = new UriBuilder(this.AuthorizationCodeUrl) {
                Query = string.Format("client_id={0}&response_type=code&redirect_uri={1}", base.ClientId, Uri.EscapeDataString(base.CallbackUrl))
            };
            return builder.ToString();
        }

        public override Task<HttpResponseMessage> HttpGetAsync(string api, Dictionary<string, object> parameters)
        {
            if (base.IsAuthorized)
            {
                if (parameters == null)
                {
                    parameters = new Dictionary<string, object>();
                }
                if (!parameters.ContainsKey("source"))
                {
后面还有 58 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。