Edited at

(ほぼ)世界中の宅配便業者の配達状況を知ることができるAPI


世界中の宅配業者の配達状況を知ることができる!

いままではヤマト運輸の有志が作成したAPIで配達状況を確認していたが、ぼんやりと検索していたら発見しました、最強のAPIを。

今まで使っていたAPIは[WebAPI]ヤマト運輸の配送状況を確認するAPIを作ってみたに大変お世話になっていた。

Qiita内でも、Rubyでヤマト運輸の荷物追跡Pythonでヤマト運輸の荷物追跡を参考にしていた。


その名もTrackingMore

【メモ】宅配便の配達状況APIを調査の中から、TrackingMoreというサービスが日本語化されていた。


利用方法


  1. ユーザ登録

  2. API Keyの取得

  3. ライブラリの入手

  4. コードを書いて試してみる


ユーザ登録

TrackingMoreの右上の登録をクリックして、メールアドレスとパスワードを登録する。


APIキーの取得

画面下部のAPIをクリック

スクリーンショット 2017-11-05 12.00.36.png

API Keys.をクリック

スクリーンショット 2017-11-05 12.04.01.png

名を入力して、生成します。をクリック。

スクリーンショット 2017-11-05 12.05.28.png

すると、同じ画面の下にAPIキーが表示される。

このサービスのリクエスト全部で使うことになる。


ライブラリの入手

今回はPHPでやってみる。

API ドキュメント Trackingmore API

の左にあるPHP Exampleをクリック。

スクリーンショット 2017-11-05 12.10.34.png

API類をクリック

スクリーンショット 2017-11-05 12.11.54.png

遷移先でライブラリがダウンロードできるので、ダウンロード。

スクリーンショット 2017-11-05 12.13.46.png


コードを試しに書いてみる


APIキーの設定

ライブラリをunzipして中身を取り出す。

面倒なのでライブラリのファイル(ファイルは1つしかない)の13行目に直接apikeyを書く。


track.class.php

protected $apiKey = '生成されたAPIキー'; 



試しに1件だけ荷物を追跡してみる


sample.php

<?php

require_once dirname(__FILE__).'/track.class/track.class.php';
$trackMore = new Trackingmore;
$trackNo = '4445-xxxx-xxxx';
$result = $trackMore->getSingleTrackingResult('taqbin-jp', $trackNo);
var_dump($result['data']['origin_info']['trackinfo']);
?>

getSingleTrackingResultの1つめの引数は宅配業者を指定する。

宅配業者リストはTrackinMoreのAPI Documentの下の方に表で書いてあるので調べる。

表の宅配便コードが1つめの引数になる。

宅配便名を見ていくとヤマト運輸の場合はtaqbin-jpになる。

スクリーンショット 2017-11-05 12.27.09.png

日本郵便(Japan Post)もある。


結果を見る

配列で返ってくるのでどんどん見ていく。ちなみにAmazonで買い物をしたときの様子。

array(4) {

[0]=>
array(3) {
["Date"]=>
string(16) "2017-11-03 18:45"
["StatusDescription"]=>
string(12) "荷物受付"
["Details"]=>
string(21) "市川AFC支店"
}
[1]=>
array(3) {
["Date"]=>
string(16) "2017-11-03 18:45"
["StatusDescription"]=>
string(6) "発送"
["Details"]=>
string(21) "市川AFC支店"
}
[2]=>
array(3) {
["Date"]=>
string(16) "2017-11-03 18:27"
["StatusDescription"]=>
string(15) "作業店通過"
["Details"]=>
string(18) "船橋ベース店"
}
[3]=>
array(3) {
["Date"]=>
string(16) "2016-11-04 09:10"
["StatusDescription"]=>
string(12) "配達完了"
["Details"]=>
string(24) "函館広野センター"
}
}


いままで使っていた有志のAPIとの違い

[WebAPI]ヤマト運輸の配送状況を確認するAPIを作ってみたは多分、ヤマト運輸の追跡ページをスクレイピングしてるような気がするので、荷物が動いた日時が扱いにくかった。

11/03と09:10のように日時がバラバラで入っていて、更に年が入っていないので年末年始の扱いをどうしようか難しかった。


注意

APIの利用には回数制限があるようです。

回数制限を回避するには課金が必要な模様。