在asp.net中创建twitterizer应用程序时出错

时间:2016-05-25 00:19:24

标签: c# asp.net asp.net-web-api twitter-oauth

我正在使用Twitterizer dll通过oauth方法在Twitter上发布twit,但它给了我错误。 “哇那里! 此页面没有请求令牌。这是我们要求使用您的Twitter帐户的应用程序所需的特殊密钥。请返回发送给您的网站或应用程序,然后重试;这可能只是一个错误。“

我的代码是:

using System;
using Twitterizer;
public partial class Home : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    var oauth_consumer_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    var oauth_consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    if (Request["oauth_token"] == null)
    {
        OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(oauth_consumer_key, oauth_consumer_secret,
            Request.Url.AbsoluteUri);
        Response.Redirect(string.Format("http://Twitter.com/oauth/authorize?oauth_token+{0}", reqToken.Token));
    }
    else
    {
        string requestToken = Request["oauth_token"].ToString();
        string pin = Request["oauth_verifier"].ToString();
        var tokens = OAuthUtility.GetAccessToken(oauth_consumer_key, oauth_consumer_secret, requestToken, pin);
        OAuthTokens accessToken = new OAuthTokens()
        {
            AccessToken = tokens.Token,
            AccessTokenSecret = tokens.TokenSecret,
            ConsumerKey = oauth_consumer_key,
            ConsumerSecret = oauth_consumer_secret
        };
        TwitterResponse<TwitterStatus> response = TwitterStatus.Update(accessToken, "Hello everyone, today it's too hot (weather)!!!");
        if (response.Result == RequestResult.Success)
        {
            Response.Write("It's done");
        }
        else
        {
            Response.Write("Fail");
        }
    }
}

}

请帮帮我..

1 个答案:

答案 0 :(得分:0)

看到没有人回答你的问题,我可以建议我正在处理的图书馆。

使用Tweetinvi,您可以使用以下代码执行所需操作:

// Step 1 : Redirect user to go on Twitter.com to authenticate
public ActionResult TwitterAuth()
{
    var appCreds = new ConsumerCredentials("CONSUMER_KEY", "CONSUMER_SECRET");

    // Specify the url you want the user to be redirected to
    var redirectURL = "http://" + Request.Url.Authority + "/Home/ValidateTwitterAuth";
    var authenticationContext = AuthFlow.InitAuthentication(appCreds, redirectURL);

    return new RedirectResult(authenticationContext.AuthorizationURL);
}

// Step 2 : On redirected url
public ActionResult ValidateTwitterAuth()
{
    // Get some information back from the URL
    var verifierCode = Request.Params.Get("oauth_verifier");
    var authorizationId = Request.Params.Get("authorization_id");

    // Create the user credentials
    var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(verifierCode, authorizationId);

    // Do whatever you want with the user now!
    ViewBag.User = User.GetAuthenticatedUser(userCreds);
    return View();
}

身份验证文档:https://github.com/linvi/tweetinvi/wiki/Authentication

我知道这对你的Twitterizer没有帮助,但你可能想要考虑它。

相关问题