Twitterizer 2.2 Отправка справки - PullRequest
1 голос
/ 22 июля 2010

Привет! Я работаю над отправкой обновлений в Твиттере с моего сайта asp.net. У меня нет авторизации, но я застрял, когда дело доходит до отправки твита, вот мой код:

  protected void btnAuth_Click(object sender, EventArgs e)
{
    // add these to web.config or your preferred location
    var consumerKey = ConfigurationManager.AppSettings["consumerKey"];
    var consumerSecret = ConfigurationManager.AppSettings["consumerSecret"];

    //If User is not valid user
    if (Request.QueryString["oauth_token"] == null)
    {
        //Step 1: Get Request Token
        OAuthTokenResponse RequestToken = OAuthUtility.GetRequestToken(consumerKey,consumerSecret);

        //Step 2: Redirect User to Requested Token
        Response.Redirect("http://twitter.com/oauth/authorize?oauth_token="+ RequestToken.Token);
    }
    else
    {
        //For Valid User
        string Oauth_Token = Request.QueryString["oauth_token"].ToString();

        var accessToken = OAuthUtility.GetAccessToken(consumerKey, consumerSecret, Oauth_Token, txtPIN.Text.Trim());

        lblMessage.Text = "<b>Hello "  + accessToken.ScreenName + ", Welcome to my Twitter App<b>";
        lblMessage.Text += "<br/> Token: " + accessToken.Token;
        lblMessage.Text += "<br/> TokenSecret: " + accessToken.TokenSecret;
        lblMessage.Text += "<br/> UserId: " + accessToken.UserId;
        lblMessage.Text += "<br/> VerificationString: " + accessToken.VerificationString;
    } 
}

 protected void  btnTweet_Click(object sender, EventArgs e)
{
    // add these to web.config or your preferred location
    var consumerKey = ConfigurationManager.AppSettings["consumerKey"];
    var consumerSecret = ConfigurationManager.AppSettings["consumerSecret"];

    OAuthTokens accessToken = new OAuthTokens();
    accessToken.AccessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    accessToken.AccessTokenSecret = "xxxxxxxxxxxxxxxxxxxx";
    accessToken.ConsumerKey = consumerKey;
    accessToken.ConsumerSecret = consumerSecret;

    TwitterStatus TweetStatus = new TwitterStatus();
    TweetStatus.Update(accessTokens, txtTweet.Text);                        
}   

Я не знаю, как получить AccessToken & AccessTokenSecret. Любая помощь будет большой благодарностью.

Ответы [ 2 ]

2 голосов
/ 25 июля 2010

Токен доступа и секретные значения возвращаются в ваше приложение из Twitter при вызове метода OAuthUtility.GetAccessToken:

var accessToken = OAuthUtility.GetAccessToken (consumerKey, consumerSecret, Oauth_Token, Request.QueryString["oauth_verifier"]);

Процесс одноразовой авторизации происходит следующим образом: 1) Получить токен запроса 2) Отправить пользователя в Twitter для входа в систему и предоставить доступ 3) Получить пользователя по адресуURL обратного вызова, собрать значения oauth_token и oauth_verifier из строки запроса. 4) Обмен токеном запроса и верификатором для токена доступа

После того, как у вас есть токен доступа, вы должны сохранить его, чтобы пользователь не требовалсячтобы снова пройти процесс (токен доступа не устарел).

Я заметил, что вы собираете значение ПИН-кода от пользователя, но похоже, что ваше приложение является веб-сайтом.Веб-поток (не аутентификация на основе контактов) обеспечит гораздо более приятное взаимодействие с пользователем.

Если у вас есть дополнительные вопросы, отправьте их на форумы Twitterizer, http://forums.twitterizer.net.

0 голосов
/ 17 сентября 2010

После успешного входа в систему вам просто нужно установить все четыре переменные в ваших OAuthTokens (AccessToken и AccessTokenSecret возвращаются при успешном OAuthUtility.GetAccessToken)

Я предлагаю вам сохранить AccessToken и AccessToken в Cookie после проверки подлинности.

Создайте статический класс, в котором вы можете вернуть все четыре токена и проверить, все ли значения введены, В противном случае выйдите из системы.

...