我是 LinQ 的菜鸟,并且在使用 Linq2Twitter 和 Twitter API 时遇到了问题。
我无法理解如何在成功授权后获取授权用户的屏幕名称、id 和名称。
我在网上搜索了讨论线程,从 Joe 那里得到的唯一建议是在查询结果时使用异步调用。除了由于某种原因我没有 MaterializedAsyncCallback 所以我使用 AsyncCallback 代替。
以下是我从授权到尝试获取用户信息的所有步骤:
使用我的消费者密钥和秘密作为凭据创建 PinAuthorizer
this.pinAuth = new PinAuthorizer { Credentials = new InMemoryCredentials { ConsumerKey = CONSUMER_KEY, ConsumerSecret = CONSUMER_SECRET }, UseCompression = true, GoToTwitterAuthorization = pageLink => Dispatcher.BeginInvoke(() => { WebBrowser.Navigate(new Uri(pageLink + "&force_login=true", UriKind.Absolute)); }) };
授权开始
this.pinAuth.BeginAuthorize(resp => ...
输入 pin,从而在 pinAuth.OAuthTwitter 中获取访问令牌和密码:
pinAuth.CompleteAuthorize( this.pin, completeResp => Dispatcher.BeginInvoke(() => { ...
然后,我尝试让用户......使用异步调用,因为这是 Joe Mayo 在其他线程中推荐的。
ITwitterAuthorizer auth = pinAuth; TwitterContext twitterCtx = new TwitterContext(pinAuth); (from user in twitterCtx.User where user.UserID != "JoeMayo" select user).AsyncCallback(asyncResponse => { var response = asyncResponse.ToList(); User acc = response.FirstOrDefault(); // Anything in this block is pointless // as I never get into this async callback block. // But this is where I expect to get the user's info // (screen name, name, id, etc.) });
我从来没有得到异步响应。MaterializedAsyncCallback
(由于某种原因我也没有)。
如何获取授权用户的屏幕名称、id 和名称?