Windows Phone Linq2Twitter - Получаване на екранно име, идентификатор и име на оторизиран потребител?

Аз съм нуб в LinQ и имам проблеми с Linq2Twitter и Twitter API като цяло.

Не мога да разбера как да получа екранно име, идентификатор и име на оторизиран потребител след успешно оторизиране.

Търсих дискусионни теми онлайн и единственият съвет, който получих от Джо, беше да използвам асинхронно повикване, когато правя заявки за резултати. С изключение на това, че нямам MaterializedAsyncCallback по някаква причина, така че вместо това използвам AsyncCallback.

Ето стъпките, които предприемам по целия път от упълномощаването до опита за получаване на информация за потребителя:

  1. Създайте 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));
         })
     };
    
  2. Упълномощаване на началото

    this.pinAuth.BeginAuthorize(resp => ...
    
  3. Въведете ПИН кода и по този начин ще получите токен за достъп и тайна в pinAuth.OAuthTwitter:

    pinAuth.CompleteAuthorize(
        this.pin,
        completeResp => Dispatcher.BeginInvoke(() =>
        { ...
    
  4. След това се опитвам да получа потребителя ... с асинхронно повикване, тъй като това е препоръчаното от Джо Майо в други теми.

    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 по някаква причина).

Как да получа екранното име, идентификатор и име на оторизирания потребител?


person user1076731    schedule 20.03.2013    source източник


Отговори (1)


Вие всъщност изобщо не сте задействали заявката!

(from user in twitterCtx.User
 where user.UserID != "JoeMayo"
 select user).AsyncCallback(users => {
    // result is in users variable
    var user = users.SingleOrDefault();
    if(user != null)
    {
        // use user here.
    }
}).SingleOrDefault();
person MarcinJuraszek    schedule 20.03.2013
comment
отговорът е това, от което се нуждаете. Повече информация за същия въпрос тук: linqtotwitter.codeplex.com/discussions/437277 - person Joe Mayo; 20.03.2013