#!/usr/bin/perl use cPanelUserConfig; use Net::Twitter; use Data::Dumper; use JSON; use POSIX qw(strftime); require "incl/common.pl"; require "incl/html.pl"; $page_size = 140; $login_days = 10; my $twitter=Net::Twitter->new( traits => ['API::RESTv1_1'], consumer_key => 'xxxxxxxxxx', consumer_secret => 'xxxxxxxxxxxxxxxxxxxx', callback => "https://$ENV{'SERVER_NAME'}/cgi-bin/twitter.pl?command=authorize", ssl => 1, source => 'BodBot', ); if ($cookie{'Twitter_tok'} and $cookie{'Twitter_sec'}) { $twitter->access_token($cookie{'Twitter_tok'}); $twitter->access_token_secret($cookie{'Twitter_sec'}); } # Code to start the authorisation process sub twitter { $auth_url=$twitter->get_authorization_url(callback => "http://$ENV{'SERVER_NAME'}/cgi-bin/twitter.pl?command=authorize"); print "Location: $auth_url\n\n"; exit 0; } # Callback from Twitter sub authorize { eval{($access_token, $access_token_secret, $user_id, $screen_name)=$twitter->request_access_token(token => $data{'oauth_token'}, token_secret => 'xxxxxxxxxxxxxxxxxxxx', verifier => $data{'oauth_verifier'});}; if ($@) { print "content-type: text/plain\n\n"; print "ERROR:\n$@\n"; exit 1; } &log("Access token obtained for \@$screen_name"); $twitter->access_token($access_token); $twitter->access_token_secret($access_token_secret); $expiry="; expires=".(strftime "%a, %d-%b-%Y %H:%M:%S",(gmtime(time() + $login_days*24*3600)))." GMT"; print "Set-cookie: Twitter_tok=$access_token; path=/; expires=$expiry\n"; print "Set-cookie: Twitter_sec=$access_token_secret; path=/; expires=$expiry\n"; print "Location: http://$ENV{'SERVER_NAME'}/cgi-bin/twitter.pl\n\n"; exit 0; } # Logout and interact with Twitter sub logout { print "Set-cookie: Twitter_tok=xxx; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT\n"; print "Set-cookie: Twitter_sec=xxx; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT\n"; print "Location: http://$ENV{'SERVER_NAME'}/cgi-bin/twitter.pl\n\n"; exit 0; } sub XHRfollow { $result=$twitter->create_friend({ user_id => $data{'user'} }); exit 0; } sub XHRunfollow { $result=$twitter->destroy_friend({ user_id => $data{'user'} }); exit 0; }