Changeset 83e90de


Ignore:
Timestamp:
Sep 19, 2011, 1:31:35 PM (13 years ago)
Author:
Edward Z. Yang <ezyang@mit.edu>
Children:
fd92f78
Parents:
c104b43
git-author:
Edward Z. Yang <ezyang@mit.edu> (07/14/11 08:58:24)
git-committer:
Edward Z. Yang <ezyang@mit.edu> (09/19/11 13:31:35)
Message:
Fix broken posts, better permission detection, implement deletion.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Location:
perl/modules/Facebook/lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • perl/modules/Facebook/lib/BarnOwl/Module/Facebook/Handle.pm

    r9820d55 r83e90de  
    377377    my $msg = shift;
    378378
    379     my $cont = sub { $self->sleep(0); };
     379    my $cont = sub {
     380        eval { shift->as_hashref };
     381        return unless $self->check_result;
     382        $self->sleep(0);
     383    };
    380384
    381385    if (defined $user) {
     
    385389        $self->{facebook}->add_post->set_message($msg)->publish($cont);
    386390    }
     391    # XXX MESSAGE PLZ
    387392}
    388393
     
    393398    my $msg = shift;
    394399
    395     $self->{facebook}->add_comment($post_id)->set_message($msg)->publish(sub { $self->sleep(0); });
     400    $self->{facebook}->add_comment($post_id)->set_message($msg)->publish(sub {
     401        eval { shift->as_hashref };
     402        return unless $self->check_result;
     403        $self->sleep(0);
     404    });
     405    # XXX MESSAGE PLZ
    396406}
    397407
     
    438448    $self->{facebook}->access_token($self->{cfg}->{token});
    439449    # Do a quick check to see if things are working
    440     $self->{facebook}->query()->find('me')->select_fields('name')->request(sub {
     450    #$self->{facebook}->query()->find('me')->select_fields('name')->request(sub {
     451    $self->{facebook}->add_post->set_message("Logged in to BarnOwl at " . localtime time)->set_privacy('CUSTOM', {friends => 'SELF'})->publish(sub {
    441452        my $result = eval { shift->as_hashref };
    442453        if ($@) {
     
    445456                . "\nand run command ':facebook-auth URL' with the URL you are redirected to.");
    446457        } else {
    447             my $name = $result->{'name'};
    448             BarnOwl::admin_message('Facebook', "Successfully logged in to Facebook as $name!");
    449             $self->{logged_in} = 1;
    450             $self->sleep(0); # start polling
    451             $success->();
     458            $self->{facebook}->delete($result->{id}, sub {
     459                BarnOwl::admin_message('Facebook', "Successfully logged in to Facebook.");
     460                $self->{logged_in} = 1;
     461                $self->sleep(0); # start polling
     462                $success->();
     463            });
    452464        }
    453465    });
  • perl/modules/Facebook/lib/Facebook/Graph.pm

    r9820d55 r83e90de  
    77use MIME::Base64::URLSafe;
    88use JSON;
     9with 'Facebook::Graph::Role::Uri';
    910use Facebook::Graph::AccessToken;
    1011use Facebook::Graph::Authorize;
     
    2122use Facebook::Graph::Publish::RSVPAttending;
    2223use Facebook::Graph::Publish::RSVPDeclined;
     24use URI::Encode qw(uri_decode);
     25use AnyEvent::HTTP;
    2326use Ouch;
    2427
     
    113116}
    114117
     118sub delete {
     119    my ($self, $id, $cb) = @_;
     120    my %query;
     121    if ($self->has_access_token) {
     122        $query{access_token} = uri_decode($self->access_token);
     123    }
     124    my $uri = $self->uri;
     125    $uri->path($id);
     126    $uri->query_form(%query);
     127    http_request(DELETE => $uri->as_string, sub {
     128        my ($response, $headers) = @_;
     129        my %params = (
     130            response => $response,
     131            headers => $headers,
     132            uri => $uri
     133        );
     134        if ($self->has_secret) {
     135            $params{secret} = $self->secret;
     136        }
     137        $cb->(Facebook::Graph::Response->new(%params));
     138    });
     139    () # return nothing
     140}
     141
    115142sub picture {
    116143    my ($self, $object_name) = @_;
  • perl/modules/Facebook/lib/Facebook/Graph/Publish.pm

    rc104b43 r83e90de  
    1010use LWP::UserAgent; # XXX blegh
    1111use HTTP::Request::Common;
    12 use URI::Encode qw(uri_decode);
     12use URI::Encode qw(uri_decode uri_encode);
    1313
    1414has secret => (
     
    4747    my $uri = $self->uri;
    4848    $uri->path($self->object_name.$self->object_path);
    49     # XXX blegh
    50     my $request = LWP::UserAgent->new->request(POST $uri->as_string, $self->get_post_params);
     49    my $request = POST($uri->as_string,$self->get_post_params);
     50    # XXX Do this more elegantly
    5151    http_post $uri->as_string, $request->content, sub {
    52         warn "whooo";
    5352        my ($response, $headers) = @_;
    5453        my %params = (
Note: See TracChangeset for help on using the changeset viewer.