[2752] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[RFC] Download Twitter consumer keys from barnowl.mit.edu

daemon@ATHENA.MIT.EDU (Nelson Elhage)
Sun Nov 7 08:30:40 2010

From: Nelson Elhage <nelhage@MIT.EDU>
To: barnowl-dev@mit.edu
Cc: Nelson Elhage <nelhage@mit.edu>
Date: Sun,  7 Nov 2010 08:30:32 -0500

---
 .../Twitter/lib/BarnOwl/Module/Twitter/Handle.pm   |   26 ++++++++++++++++---
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm b/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
index 353f857..fc2ee95 100644
--- a/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
+++ b/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
@@ -30,8 +30,23 @@ use BarnOwl;
 use BarnOwl::Message::Twitter;
 use POSIX qw(asctime);
 
-use constant BARNOWL_CONSUMER_KEY    => "9Py27vCQl6uB5V7ijmp31A";
-use constant BARNOWL_CONSUMER_SECRET => "GLhheSim8P5cVuk9FTM99KTEgWLW0LGl7gf54QWfg";
+use LWP::UserAgent;
+use URI;
+use JSON;
+
+use constant CONSUMER_KEY_URI => 'http://barnowl.mit.edu/twitter-keys';
+our $oauth_keys;
+
+{
+    my $ua = LWP::UserAgent->new;
+    $ua->timeout(5);
+    my $response = $ua->get(CONSUMER_KEY_URI);
+    if ($response->is_success) {
+        $oauth_keys = eval { from_json($response->decoded_content) };
+    } else {
+        warn "[Twitter] Unable to download OAuth keys: $response->status_line\n";
+    }
+}
 
 sub fail {
     my $self = shift;
@@ -57,6 +72,9 @@ sub new {
         $cfg->{show_mentions} = $val;
     }
 
+
+    my $keys = $oauth_keys->{URI->new($cfg->{service})->canonical} || {};
+
     $cfg = {
         account_nickname => '',
         default          => 0,
@@ -64,8 +82,8 @@ sub new {
         poll_for_dms     => 1,
         publish_tweets   => 0,
         show_mentions    => 1,
-        oauth_key        => BARNOWL_CONSUMER_KEY,
-        oauth_secret     => BARNOWL_CONSUMER_SECRET,
+        oauth_key        => $keys->{oauth_key},
+        oauth_secret     => $keys->{oauth_secret},
         %$cfg,
        };
 
-- 
1.7.1.31.g6297e


home help back first fref pref prev next nref lref last post