0

こんにちは私はlinqToTwitterでプライベートメッセージを送りたいです、ここに私のコードがあります:

 var auth = new MvcAuthorizer
        {
            Credentials = new InMemoryCredentials()
            {
                ConsumerKey  = TwitterClient.ConsumerKey,
                ConsumerSecret = TwitterClient.ConsumerSecret,                    
                OAuthToken = TempData["AccessToken"] as string,
                AccessToken = TempData["TokenSecret"] as string
            }
        };            
        var twitterContext = new TwitterContext(auth);            
        var message = twitterContext.NewDirectMessage(auth.UserId, "Hi ucef, cool to discuss with you" + DateTime.Now);

しかし、auth.UserIdはnullです、何か考えがありますか!!!

4

1 に答える 1

0

オーソライザーは、ユーザーがアプリを認証する OAuth プロセスを通過した直後にのみ、ユーザー ID を保持します。ユーザーがアプリを認証すると、Twitter は UserID と ScreenName を返します。

4 つの資格情報をすべて同時にロードしているため、OAuth プロセスを経由せずに Twitter を照会できるという便利さがあります。ただし、OAuth プロセスを経ていないため、UserID を設定する方法はありません。

これを回避する 1 つの方法は、ユーザーが初めて認証された後に UserID を保存し、その後のクエリで保存した場所から保存された ID を取得することです。

もう 1 つの回避策は、Account VerifyCredentials クエリを実行することです。Account.User.UserIdentifier プロパティから UserID を取得できます。

ジョー

于 2012-10-25T03:50:24.987 に答える