0

我需要以编程方式检查 Twitter 帐户的用户名/密码是否有效。

代码

我正在关注这个链接

public bool CheckTwitterCredentials(string UserName, string Password)
{
    // Assume failure
    bool Result = false;

    // A try except block to handle any exceptions
    try {
        // Encode the user name with password
        string UserPass = Convert.ToBase64String(
            System.Text.Encoding.UTF8.GetBytes(UserName + ":" + Password));

        // Create our HTTP web request object
        HttpWebRequest Request = 
            (HttpWebRequest)WebRequest.Create("http://twitter.com/account/verify_credentials.xml");

        // Set up our request flags and submit type
        Request.Method = "GET";
        Request.ContentType = "application/x-www-form-urlencoded";

        // Add the authorization header with the encoded user name and password
        Request.Headers.Add("Authorization", "Basic " + UserPass);

        // Use an HttpWebResponse object to handle the response from Twitter
        HttpWebResponse WebResponse = (HttpWebResponse)Request.GetResponse();

        // Success if we get an OK response
        Result = WebResponse.StatusCode == HttpStatusCode.OK;
    } catch (Exception Ex) {
        System.Diagnostics.Debug.WriteLine("Error: " + Ex.Message);
    }

    // Return success/failure
    return Result;
}

我创建了一个新帐户,我的电子邮件已通过验证。我现在可以使用我的用户名和密码登录。当我尝试使用上面的代码时。我收到未经授权的异常。

我错过了什么吗?

4

2 回答 2

1

看起来 Twitter API 已更新。您提供的代码不再有效。

于 2013-10-08T12:21:11.973 回答
1

您是否使用过 OAuth。

据我所知,Twitter 只接受经过 OAuth 的请求。

请参阅:https ://dev.twitter.com/docs/api/1.1/get/account/verify_credentials

据此,您需要进行身份验证才能验证凭据。

我在您的代码中没有看到您使用 OAuth 进行身份验证的任何地方,所以除非它隐藏在某个地方,否则我不希望您的代码能够工作。

实际上,Twitter 是一个 API 的痛苦,并且很可能会随着时间而改变(从 1.0 到 1.1 的跳跃是完全重写)。

因此,我建议使用图书馆并让他们担心。我使用 TweetSharp。可悲的是,主要开发人员已经离开了该项目,但它仍然有效。

于 2013-10-08T12:19:22.987 回答