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); } } }
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("同步成功"); }