Windows サービスからユーザーに代わって投稿するアプリを作成しています。ユーザーは別の Web ベースのフローでアプリケーションを承認し、ユーザーのアクセス トークンとシークレットは後で使用するために保存されます。私はLinq-to-twitterを使ってtwitterとの会話を処理しています。
私は SingleUserAuthorizer (以下) を使用していますが、リクエストに署名するか、リクエストをユーザーに関連付けるのに問題があるようです。/account/verify_credentials.json?skip_status=true と同等のものを呼び出すたびに、401 - Could not authenticate you (32) エラーが発生します
キッカーは、それが機能していたことです。コードの変更なしで 100% の失敗率を実現しています。デバッグ中に、アクセス トークン/シークレットのさまざまな値を試し、クライアント資格情報とアクセス トークン/シークレットの両方を再生成しました。また、以前に既知のさまざまな適切なユーザー トークンを試したり、他の方法で新しいトークンを生成したりしました。
どんな方向性でも大歓迎です。(以下のスニペット)。
var auth = new SingleUserAuthorizer()
{
Credentials = new SingleUserInMemoryCredentials()
{
ConsumerKey = _consumerKey,
ConsumerSecret = _consumerSecret,
TwitterAccessToken = twitterAccessToken,
OAuthToken = twitterAccessToken, // added during debugging
AccessToken = twitterAccessSecret, // added during debugging
TwitterAccessTokenSecret = twitterAccessSecret,
UserId = userId // added during debugging
}
};
auth.Authorize(); // added during debugging
var context = new TwitterContext(auth);
context.Log = Console.Out;
var account = context.Account
.Where(t => t.Type == AccountType.VerifyCredentials)
.FirstOrDefault(t => t.SkipStatus == true);