Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon UFJ API(開発用)を利用してみる (2019/05/15)
UFJ が API を虎視眈々と開発していた。
カブドットコムのAPIも使えたりと結構楽しそう、というか近々実用化されそうな予感がします。
カブドットコムのAPI(kabu.com API)は本番環境で利用できるとのことだが、法人契約が必要なのと当然ながら審査が必要。

開発用API登録

UFJ API

API種別

2019/05/15現在、個人口座、法人口座、振込申請、総合振込申請、給与賞与振込申請、特別徴収地方税のAPIが用意されている。
UFJ API

API Client Secretの発行

当然ながらAPIを利用するには、Client Secret の発行が必要となる。
UFJ API

APIリファレンス

各サービス毎にリファレンスは用意されている。
cURL,Ruby,Python,PHP,Java,Node,Go,Swift のサンプルが記載されており、結構本気度が伺えられる。
また、レスポンスは基本 json のようだ。
UFJ API
ただ本番利用の場合は、金融業界なので審査が厳しいと予想される。

ライブラリ(PHP)

使いやすいように、ざっとクラスライブラリを作成してみた。
(2019/05/15現在アカウント情報取得のみ)
GitHub: yoo16/ufj_api
また、検証用データが用意されていて、Account ID一覧は以下の通り
001001110001
002001110002
325001110003
135011110005
118011110008
329011110009
002021110013
002022220003
325022220004
909022220013
002022220014
002023330003
325023330004
480023330005
777023330008
118023330009
427383330012
909383330013
002383330014
002283330016

実行結果

$ php get_account.php 002023330003
{"branchNo":"002","branchName":"丸の内","accountTypeCode":"02","accountTypeDetailCode":"00099","accountTypeName":"定期","accountNo":"3330003","accountName":null,"accountNameKana":null,"balance":100000,"withdrawableAmount":null,"currencyCode":"JPY","foreignCurrencyBalance":null,"yenEquivalent":null,"exchangeRate":null,"totalMarketValue":null,"totalUnrealizedProfitAndLoss":null,"mutualFundAccountType":null,"fundBaseDate":null}
icon [GAS]Gmail指定ラベルの不要メール削除 (2019/05/15)
30日前より前のメールをラベル抽出して、ゴミ箱に移動するスクリプト
GitHub: yoo16/gas_samples
function removeGmail() {
    var before_days = 30;
    var spreadsheet_id = 'スプレードシートID';
    var sheet = SpreadsheetApp.openById(spreadsheet_id).getActiveSheet();
    var values = sheet.getDataRange().getValues();
    for (var i = 0; i < values.length; i++) {
        removeMail(values[i], before_days);
    }
}

function removeMail(label, before_days) {
    var condition = 'older_than:' + before_days + 'd label:'+ label;
    var threads = GmailApp.search(condition);
    for (var i = 0; i < threads.length; i++) {
        threads[i].moveToTrash();
    }
    //TODO loop for all threads by label
    //var threads = GmailApp.search(condition, 0, 100);
    //GmailApp.moveThreadsToTrash(threads);
}

Google Apps Script : GmailApp Reference

GmailApp の機能はClass GmailAppを参照

Gmail検索ラベルは複数あるので、Googleスプレッドシートに記載して読み取る
スプレッドシートの指定は、ファイル名検索でもできるが、あらかじめID取得しておいた方が楽
var sheet = SpreadsheetApp.openById(spreadsheet_id).getActiveSheet();

Gmail操作

GmailApp.search() メソッドで Gmailを検索できるが、引数は Gmail のブラウザ操作で現れるものと同じと考えて良い。
var threads = GmailApp.search('older_than:' + before_days + 'd label:'+ label);
ただし件数制限がある模様(threads.length を調べると500件)
    for (var i = 0; i < threads.length; i++) {
        threads[i].moveToTrash();
    }
1スレッドづつ削除するが、完全削除ではなくゴミ箱に移動する
(完全削除メソッドは GAS では用意されていない)

Threadをまとめてゴミ箱に移動

上記だと forループで1スレッド毎にゴミ箱に移動するが、一括でゴミ箱移動する「GmailApp.moveThreadsToTrash()」がメソッドが存在する
var threads = GmailApp.search('older_than:' + before_days + 'd label:'+ label);
GmailApp.moveThreadsToTrash(threads);
ただし「この操作は最大 100 件のスレッドにのみ適用できます。」と表示され、100件までしか動作しないようなので、search() するときに件数を指定
var condition = 'older_than:' + before_days + 'd label:'+ label;
var threads = GmailApp.search(condition, 0, 100);
GmailApp.moveThreadsToTrash(threads);
これを、メールがなくなるまでループで回せば全削除はできそう

トリガー登録で定期実行

定期的にスクリプトを実行するには「編集 > 現在のプロジェクトのトリガー」から設定できる。
GAS Trigger
「トリガーを追加」でスケジュールを設定できる(詳細設定はわかりやすいので割愛)
GAS Trigger
icon RuntimeException No application encryption key has been specified (2019/05/02)
プロジェクトを整理していたら、アプリケーションキー「encryption key」を消失http://xxx.xxx.xxx.xxx:8000/ のアクセス時に Runtimeエラーが表示
作成する
$ php artisan key:generateApplication key set successfully.
実際にはクラスファイル「KeyGenerateCommand」で、Laravel Config設定に基づき、 base64_encode() と Encrypter::generateKey() でランダムキーを生成している模様。
Illuminate\Foundation\Console\KeyGenerateCommand
    public function handle()
    {
        $key = $this->generateRandomKey();
       .....
        $this->laravel['config']['app.key'] = $key;
    }
    protected function generateRandomKey()
    {
        return 'base64:'.base64_encode(
            Encrypter::generateKey($this->laravel['config']['app.cipher'])
        );
    }
<< 最初 < 前ページ 次ページ > 最後 >>

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ