view Agendas/trunk/src/Agendas.Twitter/oAuthTwitter.cs @ 221:37ddf81333d3 deploy 2011-09-13

Modificación por problemas al cambiar la posición de screen_name en el json que devuelve twitter (lo pasaron al final)
author nelopauselli
date Tue, 13 Sep 2011 09:01:58 -0300
parents 734d3f0853bf
children a7420f05716a
line wrap: on
line source

using System;
using AltNetHispano.Agendas.Configurations;

namespace AltNetHispano.Agendas.Twitter
{
	public class OAuthTwitter
	{
		private readonly ITwitterAdapter _twitterAdapter;

		public OAuthTwitter()
		{
			_twitterAdapter = new TwitterAdapter();
		}

		public OAuthTwitter(ITwitterAdapter twitterAdapter)
		{
			_twitterAdapter = twitterAdapter;
		}

		private string ConsumerKey
		{
			get { return AgendasConfigurationManager.Publicadores.Twitter.SignIn.ConsumerKey; }
		}

		private string ConsumerSecret
		{
			get { return AgendasConfigurationManager.Publicadores.Twitter.SignIn.ConsumerSecret; }
		}

		public Uri AuthorizationLinkGet(string callbackAddress)
		{
			var request = _twitterAdapter.BuildAuthorizationUri(ConsumerKey, ConsumerSecret, callbackAddress);
			return request;
		}

		public string AccessTokenGet(string requestToken, string verifier)
		{
			return _twitterAdapter.GetAccessToken(ConsumerKey, ConsumerSecret, requestToken, verifier);
		}

		public static string GetResponseContent(string response, string tagName)
		{
			var tagStart = "\"" + tagName + "\":";
			var tagEnd = "\"";

			var start = response.IndexOf(tagStart) + tagStart.Length;
			if (start > tagStart.Length)
			{
				var end = response.IndexOf(tagEnd, start+1);
				if (end > 0)
				{
					return response.Substring(start + 1, end - start - 1);
				}
			}
			return string.Empty;
		}
	}
}