2010-06-30 2 views
3

Я пытаюсь получить сайт для подключения к учетной записи Twitter, чтобы я мог отображать твиты на своем веб-сайте. Я могу заставить приложение работать, когда вы подключаетесь через аутентификацию OAuth, и спрашивает, хочу ли я разрешить приложение.Интеграция Twitter на сайте

Что я хочу сделать, это потому, что это моя собственная учетная запись Twitter, я хочу иметь возможность входа в систему без необходимости делать это каждый раз. Я хочу, чтобы веб-сайт отправлял мои учетные данные, чтобы пользователь просто просматривал страницу и мог просматривать твиты. Это возможно?

+0

Нужно войти? Разве ваши твиты не публикуются? Я понимаю, что вы получаете лучшую скорость запроса, войдя в систему, но вы все равно должны кэшировать их на серверной стороне и часто обновляться. – Rup

+0

@Rup: Мне нужно войти, чтобы показать твиты, которые защищены. –

+0

ОК, что отменяет мой ответ :) – Redlab

ответ

1

Я понял это. Я создал новый класс, который наследует интерфейс IConsumerTokenManager. Тогда единственными свойствами, которые мне нужно было изменить, были ConsumerKey, ConsumerSecret и GetTokenSecret (как показано ниже).

#region Namespaces 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using DotNetOpenAuth.OAuth.ChannelElements; 
using DotNetOpenAuth.OAuth.Messages; 
#endregion 

namespace BingMapTest 
{ 
    public class ConsumerTokenManager : IConsumerTokenManager 
    { 
     public string ConsumerKey 
     { 
      get { return "xxxxxxxx"; } 
     } 

     public string ConsumerSecret 
     { 
      get { return "xxxxxxxx"; } 
     } 

     public string GetTokenSecret(string token) 
     { 
      return "xxxxxxxx"; 
     } 

     public void ExpireRequestTokenAndStoreNewAccessToken(string consumerKey, string requestToken, string accessToken, string accessTokenSecret) 
     { 
      throw new NotImplementedException(); 
     } 

     public TokenType GetTokenType(string token) 
     { 
      throw new NotImplementedException(); 
     } 

     public bool IsRequestTokenAuthorized(string requestToken) 
     { 
      throw new NotImplementedException(); 
     } 

     public void StoreNewRequestToken(UnauthorizedTokenRequest request, ITokenSecretContainingMessage response) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
} 

Затем обратно в моем методе Page_Load я создаю экземпляр нового ConsumerTokenManager:

protected void Page_Load(object sender, EventArgs e) 
     { 
      ITwitterAuthorization auth; 

      ConsumerTokenManager tokenManager = new ConsumerTokenManager(); 

      auth = new WebOAuthAuthorization(tokenManager, "accessToken"); 
      auth.UseCompression = true; 

      // For Twitter 
      using (var twitterCtx = new TwitterContext(auth, "https://api.twitter.com/1/", "https://search.twitter.com/")) 
      {     
       // Whatever authorization module we selected... sign on now. 
       try 
       { 
        auth.SignOn(); 
       } 
       catch (OperationCanceledException) 
       { 
        return; 
       } 
      } 
     } 

Мысль, что я разделю упаковывают кто-либо другой подобный вопрос.

1

Если ваша учетная запись не защищена, вы можете использовать общественный график, как:

http://twitter.com/statuses/user_timeline/mytwittername.json?callback=twitterCallback2&count=4 

это даст вам последние 4 твитов, есть и другие способы, чтобы получить ваши твиты Whithout аутентификации

0

Вы все равно придется использовать oauth.

Идея состоит в том, что при входе в систему любой API oauth возвращает токен доступа. Иногда токен доступа необходимо повторно запрашивать, но в случае с Твиттером the FAQ states (почти внизу) они не истекают.

Этот маркер доступа используется для подписи всех будущих вызовов - например, для получения твитов, и т.д ..

Смежные вопросы