2011-03-16 9 views
2

StartSignInWithTwitterメソッドを使用しようとしています。例外がスローされた後すぐにメソッドが呼び出されたとき。これはDotNetOpenAuthの最新バージョンを使用しています。それは、私と一緒にローカルで開発して実行することと関係がありますか? (VS2010)これは私が最初に認証を行うべきであるか?ソースに含まれているサンプルパックにはいくつかの異なる方法があります。DotNetOpenAuth Twitter Consume StartSignIn

は{「リモートサーバーがエラーを返しました:(401)許可されていない」}

私のコードは以下のようになります。

public void TwitAuthInit() 
    { 
     TwitterConsumer.StartSignInWithTwitter(false).Send(); 
    } 

    public ActionResult TwitAuth() 
    { 
     if (TwitterConsumer.IsTwitterConsumerConfigured) 
     { 
      string screenName; 
      int userId; 
      if (TwitterConsumer.TryFinishSignInWithTwitter(out screenName, out userId)) 
      { 

       FormsAuthentication.SetAuthCookie(screenName, false); 
       return RedirectToAction("Home", "Index"); 
      } 

     } 

     return View(); 
    } 
+0

あなたの質問に、ディストリビューションに含まれているTwitterサンプルが役立つかどうかを追加できますか? –

+0

私はそれをサンプル配布でも動作させることができませんでした。同じ正確なエラー。それはTwittersの終わりで何かに仲間入りできますか?私はアプリケーションを登録しました。 Twitterで設定されているURLのどれもローカルにマッチする必要がありますか? Visual Studioでlocalhostを実行しているので、これが問題になる可能性があります。 – aherrick

+2

Twitterの消費者に登録問題がある可能性があります。登録ページでApp Type = Browserを選択してください。 URLは実際には私の経験上重要ではありません。 –

答えて

1

これは私がやるべきことはどのように」についてのあなたの質問に答えるために最初の認証ですか?」:

screenNameSetAuthCookie(screenName, false)に電話をかけてはいけません。画面名はリサイクル可能ですので代わりに、自分のユーザーデータベースまたはTwitterに作成した一意のIDを使用してユーザーをログオンし、そのユーザーが表示されている別名として画面名を使用する必要があります。公共の視聴のために何かを投稿する)。それ以外の場合、Twitterがユーザー名をリサイクルするとき、そのユーザーはあなたのサイトの古いユーザーからのすべてのデータを継承します。

+0

アンドリュー - コメントをいただきありがとうございます、アンドリューもここに素敵な名前です。ハハ。しかし、ええ、私はscreenNameを実現しています。私はより多くのことを意味するので、適切なコードを呼び出して/応答をTwitterから受け入れる。私は自分のやり方を見てきました。また、私はTokenManagerを使って見ました。何がお勧めですか? – aherrick

+0

いつもTokenManagerが関係しているので、 "あなたのやり方"と "TokenManagerの使い方"がどのように違うか分かりません。 –

1

TwitterエラーのコールバックURLをTwitterの設定ページに設定することで、401エラーが本当に解決されることを確認したいと思っていました。設定ページのアプリケーションの種類のブロックから

:TwitterのはそのURLを変更したよう

Request token URL https://api.twitter.com/oauth/request_token 
Authorize URL https://api.twitter.com/oauth/authorize 
Access token URL https://api.twitter.com/oauth/access_token 

To restrict your application from using callbacks, leave this field blank.

1

あなたがTwitterConsumer.csに移動して、次のURLを変更する必要があります。私はメモを取っておらず、これをデバッグするのにあまりにも多くの時間を費やしました。