sironekotoroの日記

Perl で楽をしたい

2020-01-01から1年間の記事一覧

Perl入学式 オンライン 2020 第3回お疲れ様でした

受講された方、サポーターの方、お疲れ様でした。 講師をやったジャージの人です。 講義に利用したスライド・動画類は以下 Perl 入学式の公式サイトで公開しています。参加された方も、参加できなかった方も、ぜひ復習に使ってください。 www.perl-entrance.…

Perl で Chatwork API を使って添付ファイルをダウンロードする

チャットツール変更 お仕事で使うチャットツールを Chatwork から Slack に変更することになりました。 ユーザーも作り、運用ルールはメルカリさんの物をちょっと変えて・・・メルカリさんありがとうございます。 mercan.mercari.com さて、これでめでたしめ…

Perl で Google Sheet API をつかってセルに値を書き込む

さくっとやりました!と言いたいところなのですが Google Sheet API 叩き職人の朝は早い「'status' => '400', 'reason' => 'Bad Request', これが出てからが本番ってことさ」この道3ヶ月の sironekotoro はそう言って笑う— sironekotoro (@sironekotoro) 202…

Perl で Google Sheet API をつかってセルの値を取得する

これも GET だけでできるのでお手軽ー 説明よりもコードを読んでもらったほうが早い気がする。 配列リファレンスの中の配列リファレンス、てな形でデータが取得できるので、csv にするなりなんなり後は自由自在ですね(力量による) ちょっと詰まったところ …

Perl で Google Sheet API をつかってタイトルを変更する

なんか、適当に文言を入れ替えて自動生成したみたいなタイトルになってきたなぁ・・・ それはそれとして、Google Drive API に引き続き、Google Sheet API を使ってホゲホゲするってやつです。 以前、モジュールを使ってやってみたんですが、せっかく Web AP…

Perl で Slack API を使ってユーザー一覧を取得する(追記あり)

Slack のユーザー一覧を取得せよ! ってなお仕事が降ってきたものの、Slack のメニューとか探したど見当たらず。 これは API 使えってことなのかなぁ・・・使うんはいいけど、普通の非テックな会社だと厳しいんでは。 もっと高い料金プランだと出てくるのか…

Perl で Google Drive API をつかって特定のファイルを削除する

ファイルの上書き終わったところでこのシリーズ(シリーズ?)終わらせようと思っておりました。 しかし CRAD:Create, Read, Add, Delete の一角たる Delete やらないっていうのはないんじゃないか? どうせ後で必要になりそうだし・・・あぁ、でも面倒〜。…

Perl入学式 オンライン 2020 第2回お疲れ様でした

受講された方、サポーターの方、お疲れ様でした。 講師をやったジャージの人です。 講義に利用したスライド・動画類は以下 Perl 入学式の公式サイトで公開しています。参加された方も、参加できなかった方も、ぜひ復習に使ってください。 www.perl-entrance.…

Perl で Google Drive API をつかってフォルダーを作成する

はい、慣れてきました。 API の URL と mimeType 以外はそのまんまです。 my $GOOGLE_DRIVE_API = "https://www.googleapis.com/upload/drive/v3/files?create"; # (中略) `mimeType => 'application/vnd.google-apps.folder',` developers.google.com To …

Perl で Google Drive API をつかって特定のファイルを更新する

特定のファイルを更新する ちょっと前、ファイルを Google Drive にアップロードした時は、同名のファイルがある場合でもアップロードが可能でした。 ・・・可能でした、っていうか完全に不意打ちでしたが・・・ sironekotoro.hateblo.jp しかし、ファイルを…

Perl で Google Drive API をつかって特定フォルダ配下のファイル一覧を取得する

特定のフォルダ配下にあるファイル一覧を表示する こちらは GET アクセスなので簡単だろう〜・・・とナメてかかって、割と引っかかりました。 url でパラメータを組み立てる時に 2 回 URL エンコードしてしまったというもの。 Google Drive API v3 で特定の…

Perl で Google Drive API のアクセストークンを更新する

今日も Perl から Google Drive API v3 をやっていきます。 リフレッシュトークンを使ってアクセストークンを更新する Google の発行したアクセストークンは 3600 秒、つまり 1 時間で失効します。 失効する都度、アクセストークンを発行しても良いのですが…

Perl で Google Drive API を使ってファイルをアップロードする

Google Drive API を使ってファイルをアップロードしたい! これが超苦労しましたん・・・ 先に blog で書いたとおり、自分の環境(と技能)では、Google Drive を操作するモジュールを使うことができませんでした。 しかし! Google Drive API は REST API …

Perl で Google Drive API を使ってファイル一覧を取得する

さて、Google Cloud Platform で利用する ACCESS TOKEN と REFRESH TOKEN を手にしたからには、次の段階へ向かわねばなりません。 そもそも、なんか OAuth いじるの楽しくなって色々やってしまいましたが、これは目的と手段が逆転するいつものパターンです。…

Mojolicious::Lite で Google Drive API のアクセストークンを表示する

そろそろ前に進まないとと思いつつ ここしばらく、Google の提供する API を扱うためのことやってきたんですが、やりつつ一つの疑念がありました。 途中で Web にアクセスして URL を貼り付けるところ、そのまま HTTP の GET で良いのでは? いちいちブラウ…

CircleCI で Perl のテストをローカルでやってみた

環境構築から この本を参考にしました。 gihyo.jp Perl の例は掲載されていないですが、他の言語での例は豊富です。 なので、そっから応用していけるのではないか、していきたい!という気持ち。 $ brew install circleci バージョン確認 $ brew info circle…

Perl から Google Drive にファイルを「上書きっぽい感じ」でアップロードする

ここまで( 7 時間くらい)のあらすじ 前回の Google Drive の続きをやろう。Google Drive の特定のフォルダの配下にあるファイルを上書きアップロードしよう。 Google Drive は同名ファイルをフォルダ内に作成できる。 このため、同じファイルを続けてアッ…

Lenovo 製 M75q-1 Tiny の USB Recovery Creator で大変だった(追記あり)

まとめ:Lenovo 製 M75q-1 Tiny の USB Recovery Creator でメディア作成に失敗し続ける人へ 購入した Lenovo 以外の、他の Windows 機で USB Recovery Creator を動かしてメディアを作ってみたら成功した。 BUFFALO 製 USB メモリでは USB からのブートに失…

Perl から Google Drive にファイルをあげたりダウンロードしたり一覧を取ったり

Google OAuth のクライアントIDとクライアントシークレットを入手する まずは Google Cloud Platform でプロジェクト作成から。 もちろん、既存のプロジェクトに Google Drive API の利用権限を与えてもokです。 プロジェクトの作成が終わったら、左上のナビ…

Perl から Google Sheet を読み書きする

「Perl から Google Sheet を読み書きする・・・ための3種の TOKEN を手に入れる」の続きです。 sironekotoro.hateblo.jp 編集対象の Google Sheets を用意する API で書き込みを行う Google Sheet を一つ用意します。 用意した Sheet の URL から、以下の場…

Perl から Google Sheet を読み書きする・・・ための3種の TOKEN を手に入れる

いやもう、ほんと大変だったわ・・・(以下おっさんの一人語りが続くのでカット) 「かつての自分」に教えるつもりで「APIを利用する前」から始めます。 その1:Google Cloud Platform で CLIENT ID と CLIENT SECRET を手に入れる Google Cloud Platform に…

Perl入学式 オンライン 2020 第1回お疲れ様でした

Perl入学式 オンライン 第1回 受講された方、サポーターの方、お疲れ様でした。 講師の人です。 拙いところやアクシデントもありましたが、皆様に助けられました。ありがとうございます。 今回ですが、Perlの学習内容としては以下のみとなり、特に復習問題は…

Minilla で作ったモジュールにデータフォルダを入れる

全国の銀行・支店コードを取得・表示する ZenginCode というものがあります。 github.com これには!なんと!!Perl 版がないので(しょんぼり)自分で作って使ったりしています。 きっかけは経理業務で必要に迫られ・・・必要に迫られ・・・楽をする必要に…

Mouseのコンストラクタで1時間ちょっとハマったところ

出オチ感がるんですが、こんなコードです。 Mouse を使った Perl のオブジェクト指向のコードです。 意図したことは、$obj = UserID->new() でコンストラクタを呼ぶも、 required => 1 つまりオブジェクト生成時にプロパティを必須にしているのでエラーが出…

マザーテレサの(ものとして流布されている)言葉をPerlで

うちのTLに流れてきたツイート puts %w[思考 言葉 行動 習慣 性格 運命].each_cons(2).map { |a, b| "#{a}に気をつけなさい。それはいつか#{b}になるから。" }— Jun OHWADA at (@june29) 2020年9月7日 これはマザーテレサの言葉とされる文字列を表示する ru…

Perlモジュール作成実況中継 一気通貫 テストを添えて

Perl でモジュール作るなら minilla がおすすめ(というかそれしか知らない) Perl でモジュールを作るときは Minilla を使っています。 きっかけは Web+DB Press に掲載されて記事でした。 gihyo.jp 体系だった記事があると大変助かります。 $ cpanm Minill…

Perl から Slack の incoming-webhook 宛にメッセージを飛ばす

あっさりできてしまった。 #!/usr/bin/env perl use strict; use warnings; use URI; use HTTP::Tiny; use JSON qw/encode_json/; my $url = URI->new('slackのincoming-webhookのURL'); my $ht = HTTP::Tiny->new; # リクエストに必要なHTTPヘッダーを組み…

自作CLIアプリでもターミナルっぽいカーソル操作を行いたい!

自作CLIアプリでもターミナルっぽいカーソル操作を行いたい! 例えば、こんな感じの入力〜出力の簡単なスクリプトがあります。 #!/usr/bin/env perl use strict; use warnings; while (1) { print "input>"; my $input = <STDIN>; chomp $input; print $input . "\n</stdin>…

DDDをちょっとかじってみる

技術書を出版している翔泳社さんという出版社があり、たまに電子書籍のセールをやっています。 そこで、前から気になってはいたけどよく知らない、Webでさらっと見たけどとっつきにくそう、最近耳にした、ということでDDDの本を買ってみました。 www.shoeish…

GASでジャパンネット銀行の振込み手数料判定カスタム関数を作った

ネタがどんどん経理に傾いてきてますが、そういう時期なんですね。 さて、ジャパンネット銀行という銀行があります。2000年に開業した日本初のネット専業銀行です。 法人口座の手数料は以下となっています。 www.japannetbank.co.jp ジャパンネット銀行の口…