Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

いままではヤマト運輸の有志が作成した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の利用には回数制限があるようです。
回数制限を回避するには課金が必要な模様。

a_halka
羽田空港第2ターミナル50番台スポットから手荷物受け取りカウンターまでウォーキングの会主宰
https://cf6.in/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした