Examples using the How'd They Vote API

These code snippets interact with the API outlined here. If you have a code snippet to contribute to this collection, please submit it using the contact form or mailing list.

PHP

FindMember using JSON: a simple postal code lookup tool which finds a Member of Parliament.

Code:

<?php
$postal_code = '';
if (!empty($_GET['postal_code'])) {
  $postal_code = $_GET['postal_code'];
  $postal_code = preg_replace('/[^a-zA-Z0-9]/', '', $postal_code);
}
?>
<form action="?" method="get" name="find" id="find">
  Postal Code: <input type="text" name="postal_code" size="7" class="inputbox" value="<? print $postal_code; ?>" />
  <input type="submit" name="search" value="Search" />
</form>
<p>
<?php
if ($postal_code) {
  $json = file_get_contents("http://howdtheyvote.ca/api.php?key=APITESTKEY&call=findmember&house_id=1&format=json&postal_code=$postal_code");
  $response = json_decode($json);
  if ($response->{'error'}) {
    print 'ERROR: '.$response->{'error'};
  } else if ($response->{'member'}) {
    $mp = $response->{'member'};
    print $mp->{'name'};
    print '<br>'.$mp->{'party'};
    print '<br>'.$mp->{'riding_name'};
    print '<br>'.$mp->{'province'};
    print '<br>'.$mp->{'edid'};
    print '<br>'.$mp->{'email'};
    print '<br>'.$mp->{'phone'}.' (ph)';
    print '<br>'.$mp->{'fax'}.' (fax)';;
    print '<br><a href="'.$mp->{'url'}.'">'.$mp->{'url'}.'</a>';
    print '<br><a href="'.$mp->{'website_official'}.'">'.$mp->{'website_official'}.'</a>';
    print '<br><a href="'.$mp->{'website'}.'">'.$mp->{'website'}.'</a>';
  }
}
?>
</p>

Perl

GetHouses using XML: a quick intro to making a call and parsing XML in Perl.

Code:

#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;
use XML::Twig;

my $key = 'APITESTKEY';
my $lang = 'en';

my $ua = LWP::UserAgent->new;
my $domains = {
  'en' => 'http://howdtheyvote.ca',
  'fr' => 'http://quivotequoi.ca',
};
my $url = $domains->{$lang}."/api.php?call=gethouses&key=$key";
my $req = HTTP::Request->new(GET => $url);
my $res = $ua->request($req);
die $res->content if !$res->is_success;

my $xml = $res->content;
my $twig = XML::Twig->new;
$twig->parse($xml);
if (my $error = $twig->root->first_descendant('error')) {
  print 'ERROR: '.$error->field."\n";
} else {
  foreach my $house ($twig->root->children('houses')) {
    print 'house_id: '.$house->first_descendant('house_id')->field."\n";
    print 'house_name: '.$house->first_descendant('house_name')->field."\n";
    print 'url: '.$house->first_descendant('url')->field."\n";
  }
}


 

signaler une erreur sur cette page