ルモーリン
ホーム 更新 Perl Sample ランドナー サービス 雑談 コースガイド 鉄ゲタ 自転車 Linux リンク 連絡先

Perlでツイッター1.1

2018-12-11

パソコン下のプログラムからツイート

4年前のツイートできた頃の記事→Perlでツイッター
したことがない画像添付のツイートに挑戦しました。

紆余曲折

とりあえず4年前のコードで実行してみるとモジュールがなくて怒られる。 今時はActivePerlのモジュールにNet::TwitterがなくてNet::Twitter::Liteを使うらしい。 更に新規プロジェクトの申請が厳しくなって、しかも英文(分かりません)で詳細を説明しなきゃらななくて、承認まで時間がかかった。
Net::Twitter::Lite - A perl library for Twitter's API v1 - metacpan.org

コード

#!/usr/local/bin/perl -w

use utf8;
use strict;
use warnings;
use open IO => ":utf8";

use Data::Dumper;
use Encode::Locale;
use Net::Twitter::Lite::WithAPIv1_1;

binmode STDIN, ":encoding(console_in)";
binmode STDOUT, ":encoding(console_out)";

$| = 1;

use constant CONSUMER_KEY => "カスタマー(キー)";
use constant CONSUMER_SECRET => "カスタマー(秘密)";
use constant ACCESS_TOKEN => "アクセストークン";
use constant ACCESS_TOKEN_SECRET => "アクセストークン(秘密)";

print "開始";

my $tl = Net::Twitter::Lite::WithAPIv1_1->new(
	consumer_key => CONSUMER_KEY,
	consumer_secret => CONSUMER_SECRET,
	access_token => ACCESS_TOKEN,
	access_token_secret => ACCESS_TOKEN_SECRET,
);

print "画像添付してツイート";
my $tweet = "\@VocaTube 画像添付テスト";
$tl->update_with_media({
	status => Encode::encode(utf8 => $tweet),
	media => ["sample.jpg"],
});

print "終了";

実行結果

こんな感じにツイートできました。