Exemplo n.º 1
0
 public void Sync(IUser user, string text, string picUrl)
 {
     if (user == null) return;
     if (string.IsNullOrEmpty(text)||text.Length>140) return;
     IUserWeiboSettingService userWeiboSettingService = new UserWeiboSettingService();
     WeiboType type = WeiboType.GetByName("sina");
     SinaWeibo weibo = new SinaWeibo(type.AppKey, type.AppSecret);
     if (type == null || type.Enable!=1 ) return;
     UserWeiboSetting setting = userWeiboSettingService.Find(user.Id, type.Id);
     //用户未绑定微博或用户暂时选择同步
     if (setting == null || setting.IsSync==0) return;
     //如果token过期而refreshToken不为空的话,重新得到token,这里主要是新浪oauth2.0api的refresh token需要通过新浪认证后才能得到
     if (setting.IsExpire && !string.IsNullOrEmpty(setting.RefreshToken))
     {
         try
         {
             SinaOAuthAccessToken token = weibo.RefreshAccessToken(setting.RefreshToken);
             setting.AccessToken = token.Token;
             setting.RefreshToken = token.RefreshToken;
             setting.ExpireIn = token.ExpiresIn;
             userWeiboSettingService.Update(setting);
         }
         catch (SinaWeiboException ex)
         {
             log.Error(ex.Message);
         }
     }
     if (!setting.IsExpire)
     {
         weibo.SetToken(setting.AccessToken);
         try
         {
             //发送消息
             if (string.IsNullOrEmpty(picUrl))
             {
                 weibo.PostStatus(new UpdateStatusInfo() { Status = text });
             }
             else
             {
                 weibo.PostStatusWithPic(new UpdateStatusWithPicInfo { Status = text, Pic = picUrl });
             }
         }
         catch (SinaWeiboException ex)
         {
             log.Error(ex.Message);
         }
     }
 }
Exemplo n.º 2
0
        public void Sync(IUser user, string text, string picUrl)
        {
            if (user == null) return;
            if (string.IsNullOrEmpty(text) || text.Length > 140) return;
            IUserWeiboSettingService userWeiboSettingService = new UserWeiboSettingService();
            WeiboType type = WeiboType.GetByName("qqweibo");
            if (type == null || type.Enable!=1 ) return;

            UserWeiboSetting setting = userWeiboSettingService.Find(user.Id, type.Id);
            //用户未绑定微博或用户暂时选择同步
            if (setting == null || setting.IsSync == 0) return;

            if (string.IsNullOrEmpty(setting.AccessToken) || string.IsNullOrEmpty(setting.AccessSecret))
                return;
             QQWeibo.OauthKey oauthKey = new QQWeibo.OauthKey(type.AppKey,type.AppSecret,setting.AccessToken,setting.AccessSecret);

             T twit = new T(oauthKey, "json");
            //暂时用127.0.0.1处理,因为这里得没办法得到ip值
             string ip = "127.0.0.1";
             string result;
             try
             {

                 if (string.IsNullOrEmpty(picUrl))
                 {
                    result= twit.add(text, ip, "", "");
                 }
                 else
                 {
                     result =  twit.add_pic(text, ip, "", "", picUrl);
                 }
             }
             catch (Exception ex)
             {
                 log.Error(ex.Message);
             }
             log.Info("同步成功");
        }