Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Twitter/ITwitterAdapter.cs @ 158:734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
Agregando la opción de habilitar / deshabilitar un publicador
author | nelopauselli |
---|---|
date | Fri, 05 Aug 2011 16:55:18 -0300 |
parents | 0bca45e1e664 |
children |
rev | line source |
---|---|
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
1 using System; |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
2 using AltNetHispano.Agendas.Configurations; |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
3 using Twitterizer; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
4 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
5 namespace AltNetHispano.Agendas.Twitter |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
6 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
7 public interface ITwitterAdapter |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
8 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
9 Uri BuildAuthorizationUri(string consumerKey, string consumerSecret, string callbackAddress); |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
10 string GetAccessToken(string consumerKey, string consumerSecret, string requestToken, string verifier); |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
11 bool Update(string status, out string message); |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
12 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
13 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
14 public class TwitterAdapter : ITwitterAdapter |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
15 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
16 private static TwitterConfigurationElement _config; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
17 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
18 public TwitterAdapter() |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
19 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
20 _config = AgendasConfigurationManager.Publicadores.Twitter; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
21 } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
22 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
23 private static string ConsumerKey |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
24 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
25 get { return _config.SendTwitter.ConsumerKey; } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
26 } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
27 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
28 private static string ConsumerSecret |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
29 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
30 get { return _config.SendTwitter.ConsumerSecret; } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
31 } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
32 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
33 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
34 private static string AccessToken |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
35 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
36 get { return _config.SendTwitter.AccessToken; } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
37 } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
38 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
39 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
40 private static string AccessTokenSecret |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
41 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
42 get { return _config.SendTwitter.AccessTokenSecret; } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
43 } |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
44 |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
45 public Uri BuildAuthorizationUri(string consumerKey, string consumerSecret, string callbackAddress) |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
46 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
47 // Obtain a request token |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
48 OAuthTokenResponse requestToken = OAuthUtility.GetRequestToken(consumerKey, consumerSecret, callbackAddress); |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
49 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
50 // Direct or instruct the user to the following address: |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
51 Uri authorizationUri = OAuthUtility.BuildAuthorizationUri(requestToken.Token); |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
52 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
53 return authorizationUri; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
54 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
55 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
56 public string GetAccessToken(string consumerKey, string consumerSecret, string requestToken, string verifier) |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
57 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
58 OAuthTokenResponse accessToken = OAuthUtility.GetAccessToken(consumerKey, consumerSecret, requestToken, verifier); |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
59 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
60 if (accessToken != null) |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
61 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
62 var tokens = new OAuthTokens |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
63 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
64 AccessToken = accessToken.Token, |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
65 AccessTokenSecret = accessToken.TokenSecret, |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
66 ConsumerKey = consumerKey, |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
67 ConsumerSecret = consumerSecret |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
68 }; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
69 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
70 TwitterResponse<TwitterUser> showUserResponse = TwitterUser.Show(tokens, accessToken.UserId); |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
71 if (showUserResponse.Result == RequestResult.Success) |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
72 return showUserResponse.Content; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
73 return showUserResponse.ErrorMessage; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
74 } |
112
0bca45e1e664
Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents:
111
diff
changeset
|
75 |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
76 return string.Empty; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
77 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
78 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
79 |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
80 public bool Update(string status, out string message) |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
81 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
82 var tokens = new OAuthTokens |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
83 { |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
84 ConsumerKey = ConsumerKey, |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
85 ConsumerSecret = ConsumerSecret, |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
86 AccessToken = AccessToken, |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
87 AccessTokenSecret = AccessTokenSecret |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
88 }; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
89 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
90 var response = TwitterStatus.Update(tokens, status); |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
91 |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
92 message = response.ErrorMessage; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
93 return response.Result == RequestResult.Success; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
112
diff
changeset
|
94 |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
95 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
96 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
97 } |