这是新浪微博的验证码获取方式 /// <summary> /// Authorizes the un-authorized request token with a SINA passport(user name and password). /// </summary> /// <res> /// See http://open.weibo.com/wiki/Oauth/authorize /// </res> /// <param name="requestToken">The un-authorized request token previously obtained.</param> /// <param name="userName">The user name of sina passport.</param> /// <param name="password">The password of sina passport.</param> /// <returns>The authorization code(aka oauth_verifier).</returns> public static string Authorize(string requestToken, string userName, string password) { ValidateArgument(requestToken, "requestToken"); ValidateArgument(userName, "userName"); ValidateArgument(password, "password"); var requester = new HttpGet(APIUri.Authorize); requester.Params.Add(Constants.OAuthToken, requestToken); requester.Params.Add("userId", UrlEncode(userName)); requester.Params.Add("passwd", UrlEncode(password)); requester.Params.Add(Constants.OAuthCallback, "xml"); try { var response = requester.Request(); var match = Regex.Match(response, Constants.RetrieveAuthorizationCodePattern, RegexOptions.CultureInvariant); if (match.Success) return match.Groups[1].Value; else throw new AMicroblogException(LocalErrorCode.CredentialInvalid, "Invalid user name or password."); } catch { throw new AMicroblogException(LocalErrorCode.CredentialInvalid, "Invalid user name or password."); } } public static string UrlEncode(string input) { StringBuilder newBytes = new StringBuilder(); var urf8Bytes = Encoding.UTF8.GetBytes(input); foreach (var item in urf8Bytes) { if (IsReverseChar((char)item)) { newBytes.Append('%'); newBytes.Append(ByteToHex(item)); } else newBytes.Append((char)item); } return newBytes.ToString(); }腾讯微博的请前辈们指教下 -,#
var requester = new HttpGet(APIUri.Authorize); requester.Params.Add(Constants.OAuthToken, requestToken); requester.Params.Add("userId", UrlEncode(userName));requester.Params.Add("passwd", UrlEncode(password));requester.Params.Add(Constants.OAuthCallback, "xml"); 以上新浪微博没有问题 腾讯微博的账户信息 未知参数和加密方式诶 不会这么坑爹吧 求教
如何把用户WPF程序内账号密码发送请求后返回verifier验证码
他的官方SDK是弹网页获取的验证码丫
/// Authorizes the un-authorized request token with a SINA passport(user name and password).
/// </summary>
/// <res>
/// See http://open.weibo.com/wiki/Oauth/authorize
/// </res>
/// <param name="requestToken">The un-authorized request token previously obtained.</param>
/// <param name="userName">The user name of sina passport.</param>
/// <param name="password">The password of sina passport.</param>
/// <returns>The authorization code(aka oauth_verifier).</returns>
public static string Authorize(string requestToken, string userName, string password)
{
ValidateArgument(requestToken, "requestToken");
ValidateArgument(userName, "userName");
ValidateArgument(password, "password"); var requester = new HttpGet(APIUri.Authorize);
requester.Params.Add(Constants.OAuthToken, requestToken);
requester.Params.Add("userId", UrlEncode(userName));
requester.Params.Add("passwd", UrlEncode(password));
requester.Params.Add(Constants.OAuthCallback, "xml"); try
{
var response = requester.Request();
var match = Regex.Match(response, Constants.RetrieveAuthorizationCodePattern, RegexOptions.CultureInvariant);
if (match.Success)
return match.Groups[1].Value;
else
throw new AMicroblogException(LocalErrorCode.CredentialInvalid, "Invalid user name or password.");
}
catch
{
throw new AMicroblogException(LocalErrorCode.CredentialInvalid, "Invalid user name or password.");
}
}
public static string UrlEncode(string input)
{
StringBuilder newBytes = new StringBuilder();
var urf8Bytes = Encoding.UTF8.GetBytes(input);
foreach (var item in urf8Bytes)
{
if (IsReverseChar((char)item))
{
newBytes.Append('%');
newBytes.Append(ByteToHex(item)); }
else
newBytes.Append((char)item);
} return newBytes.ToString();
}腾讯微博的请前辈们指教下 -,#
requester.Params.Add(Constants.OAuthToken, requestToken);
requester.Params.Add("userId", UrlEncode(userName));requester.Params.Add("passwd", UrlEncode(password));requester.Params.Add(Constants.OAuthCallback, "xml");
以上新浪微博没有问题
腾讯微博的账户信息 未知参数和加密方式诶 不会这么坑爹吧 求教