Аз съм нуб в LinQ и имам проблеми с Linq2Twitter и Twitter API като цяло.
Не мога да разбера как да получа екранно име, идентификатор и име на оторизиран потребител след успешно оторизиране.
Търсих дискусионни теми онлайн и единственият съвет, който получих от Джо, беше да използвам асинхронно повикване, когато правя заявки за резултати. С изключение на това, че нямам 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 => ...
Въведете ПИН кода и по този начин ще получите токен за достъп и тайна в pinAuth.OAuthTwitter:
pinAuth.CompleteAuthorize( this.pin, completeResp => Dispatcher.BeginInvoke(() => { ...
След това се опитвам да получа потребителя ... с асинхронно повикване, тъй като това е препоръчаното от Джо Майо в други теми.
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
по някаква причина).
Как да получа екранното име, идентификатор и име на оторизирания потребител?