4

Twitter バージョン 1.1 API を照会する必要がある MVC4 Web アプリケーションを作成しています。MVC4 に組み込まれており、 AuthConfig.csOAuthWebSecurity.RegisterTwitterClientをアクティブにするだけで、「Twitter でサインイン」機能を使用できます。これにより、Twitter のログインが認証されますが、ユーザーに代わって API v1.1 呼び出しを実行できるように、ユーザーを承認する必要があります。

カスタム クラスを使用して別の問題 (force_login パラメーターの問題) に対処するスタック オーバーフローに関するこの投稿を見つけましたが、これらのクラスを使用し、 UserAuthorizationEndpointを変更してoauth/authorizeを指すようにしました。このコード行を変更しました:

UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authenticate", HttpDeliveryMethods.GetRequest | HttpDeliveryMethods.AuthorizationHeaderRequest),

これに:

UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authorize", HttpDeliveryMethods.GetRequest | HttpDeliveryMethods.AuthorizationHeaderRequest),

これは承認のために機能します。つまり、私のアプリケーションは Twitter ユーザーを承認します。しかし、API v1.1 を呼び出すと、「(401) Unauthorized」エラーが発生します。これは私が呼び出しに使用するコードです:

var var1 = WebWorker.PrepareAuthorizedRequest(new MessageReceivingEndpoint("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=sitestreams", HttpDeliveryMethods.GetRequest), accessToken);
var var2 = var1.GetResponse();

呼び出しを承認するには、 oauth_token_secretも必要だと思います。DotNetOpenAuth で oauth_token_secret を取得できます? 次に、 WebWorker.PrepareAuthorizedRequest を使用 してoauth_token_secretも送信できますか?

また、これには DotNetOpenAuth を使用できないという Stack Overflow の投稿も見つけました。しかし、DotNetOpenAuth コードはそれ以来更新されており、それが私がやりたいことを満たしているかどうかを知りたいのです。これは本質的に非常に単純なことです: ユーザーが Twitter を使用して Web アプリケーションにログインできるようにし、次に許可するユーザーのフォロワーを見るための私のWebアプリケーション。

要約すると、 MVC4で DotNetOpenAuth を使用してユーザーを承認し、ユーザーに代わって Twitter API v1.1 を呼び出して、たとえばGET follower/idsすることはできますか? 可能であれば、どうすればよいですか?

4

1 に答える 1

2

はい、これには DotNetOpenAuth を絶対に使用できます。OAuthConsumer プロジェクトを含むDotNetOpenAuth サンプルと、その方法を示す Twitter.aspx ページをダウンロードできます。はい、MVC ではなく Web フォームですが、翻訳は難しくありません。

問題が発生している理由は、DotNetOpenAuth.AspNet名前空間で Microsoft 提供のクラスを使用しようとしているからです。これらのクラスは、承認ではなく認証用に厳密に設計されています。WebConsumerサンプルの/クラスを使用するTwitterConsumerと、求めていることを実行できます。

于 2013-02-07T04:56:44.167 に答える