1

こんにちは、asp.net Web サイトから Twitter の更新を送信する作業を行っています。私は認証を停止していますが、ツイートを送信するときに行き詰まっています。ここに私のコードビハインドがあります:

  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 を取得する方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

2

OAuthUtility.GetAccessToken メソッドを呼び出すと、アクセス トークンとシークレットの値が Twitter からアプリケーションに返されます。

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

1 回限りの認証プロセスは次のようになります。 1) リクエスト トークンを取得する 2) ユーザーを Twitter に送信してログインし、アクセスを許可する 3) コールバック URL でユーザーを受信し、クエリ文字列から oauth_token と oauth_verifier の値を収集する 4) 交換するアクセストークンのリクエストトークンとベリファイア

アクセス トークンを取得したら、ユーザーが再度プロセスを実行する必要がないように (アクセス トークンの有効期限が切れないように) 保存する必要があります。

ユーザーから PIN 値を収集していることに気付きましたが、アプリケーションが Web サイトであるかのように見えます。Web フロー (PIN ベースの認証ではない) は、はるかに快適なユーザー エクスペリエンスを提供します。

さらに質問がある場合は、Twitterizer フォーラム ( http://forums.twitterizer.net ) に投稿してください。

于 2010-07-24T23:40:57.750 に答える
0

ログインに成功したら、OAuthToken に 4 つの変数すべてを設定するだけです (AccessToken と AccessTokenSecret は両方とも、OAuthUtility.GetAccessToken の成功時に返されます)。

認証されたら、AccessToken と AccessToken を Cookie に保存することをお勧めします。

4 つのトークンすべてを返すことができる静的クラスを作成し、4 つの値すべてが ELSE ログアウト時に提供されているかどうかをチェックします。

于 2010-09-17T08:28:33.237 に答える