以下にPerl/Rubyを使用した実例を示します。
- Perl
[イベント取得]
use utf8;
use strict;
use URI;
use URI::QueryParam;
use LWP::UserAgent;
use Encode;
use XML::Simple;
use Data::Dumper;
my $url = URI->new(’http://api.c2talk.net/event/rest’);
my %param = (
apid => ‘########’,
method => ‘event.list’,
what => encode_utf8(’新規’));
$url->query_form_hash(%param);my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => $url->as_string());
my $res = $ua->request($req);
my $simple = XML::Simple->new();
my $data = $simple->XMLin($res->content);[イベント追加]
use utf8;
use strict;
use URI;
use URI::QueryParam;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use Encode;my $url = URI->new(’http://api.c2talk.net/event/rest’);
my %param = (
apid => ‘########’,
method => ‘event.add’);
$url->query_form_hash(%param);my $ua = LWP::UserAgent->new;
my %event = (
summary => encode_utf8(’Perlからのイベント追加’),
startdate => ‘2007-09-15 12:34:56′
);
my $req = POST($url->as_string(), [%event]);
$req->authorization_basic(’########’, ‘########’);
$req->content_type(’application/x-www-form-urlencoded’);
my $res = $ua->request($req);
- Ruby
[イベント取得]
require ‘net/http’
require ‘rexml/document’
require ‘kconv’Net::HTTP.version_1_2
param = {
“apid” => “########”,
“method” => “event.list”,
“what” => “新規”
}
qparam = param.map do |key, value|
“#{URI.encode(key)}=#{URI.encode(value)}”
end.join(”&”)Net::HTTP.start(’api.c2talk.net’, 80) do |http|
response = http.get(’/event/rest?’ + qparam)
doc = REXML::Document.new response.body;
puts doc.root.to_s().tosjis
end[イベント追加]
require ‘net/http’
require ‘rexml/document’
require ‘kconv’Net::HTTP.version_1_2
doc = REXML::Document.new
decl = REXML::XMLDecl.new ‘1.0′, ‘UTF-8′
doc.add decl
root = REXML::Element.new ‘root’;
doc.add_element root
event = REXML::Element.new ‘event’
root.add_element event
event.add_element ’summary’
event.elements[’summary’].text = ‘rubyからのイベント追加テスト’.toutf8;
event.add_element ’startdate’
event.elements[’startdate’].text = ‘2007-08-31 12:34:56′;
event.add_element ‘enddate’
event.elements[’enddate’].text = ‘2007-08-31 13:57:46′;
body = ”
doc.write body;req = Net::HTTP::Post.new(’/event/rest?apid=########&method=event.add’)
req.basic_auth ‘username’, ‘password’
req.content_type = ‘text/xml’
Net::HTTP.start(’api.c2talk.net’, 80) do |http|
response = http.request(req, body)
doc = REXML::Document.new response.body;
puts doc.root.to_s().tosjis
end