もう一人のY君

主にiPhoneのショートカットアプリのレシピやTipsなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】アマゾン商品の短縮URLを生成する

f:id:thetheorier:20210624161124p:plain

 SNSなどでできるだけ短くしたいときに使えます.

 短縮サービスは使いません.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.6

 

 

スポンサーリンク

 

 

 

商品URLは単純に端折れる

 例えばApple AirPod Proの商品リンクは

 

www.amazon.co.jp/Apple-%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB-MWP22J-A-AirPods/dp/B07ZPS4FSW/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=apple&qid=1624519357&sr=8-6

 

となっています(スキームhttps://を抜いてあります).

 

kdp.amazon.co.jp

 もちろんそのままアクセスしてもいいのですが, 実際には

 

http://www.amazon.com/dp/ASIN

 

でもアクセスできます. ここでASINというのはアマゾンが発行する, 書籍を除く商品につけられたコードです.

 URLにももちろん含まれており, /dp/から続く10桁の文字列がこれに相当します, なので上記AirPodsの場合はB07ZPS4FSWであり, またアマゾンはhttps://amazon.jpでもアクセスできることから更に文字列を省略して

 

https://amazon.jp/dp/ASIN

 

とできます.

 よってその商品のURLを短くする手法として, 商品ページからURLを取得し, ASINだけ抜き取って上のURLに置き換えればいいわけです.

 

 

フロー

 というわけで実際に作ってみます.

 

 

f:id:thetheorier:20210624163716p:plain

 今回はブラウザにしろアプリにしろ, 共有からレシピを使うタイプとなるため, レシピの「共有シートに表示」をオンにし, 少なくとも「URL」の項目にチェックを入れた状態にしておきます.

 その上で「ショートカットの入力」からURLを得るわけなんですが, 原因は不明ですがこの時点で同じURLを2つ取得してしまう現象を確認しています.

 アソシエイトが影響してるかも…と思ったんですが結局わからずじまいなので, やむなく「ショートカットの入力」を直に使わず, 「テキストを分割」で改行で分割し, その最初の項目を取得することでURLを確実に一つにすることで回避しています(これがなければこの2つのアクションは不要だったんですが…).

 

 

f:id:thetheorier:20210624164222p:plain

 ともかく, 共有から得たURLから/dp/~の部分を「一致するテキスト」で取得し, "https://amazon.jp"の後ろに繋げます.

 今回はこれを表示するだけにしました.

 

 なお「一致するテキスト」では正規表現を使っています.

 /dp/は一致するかを見たい初めの部分なのでともかく, 残る.[0-9A-Z]{9}の説明ですね.

 まず.は「任意の一文字」にマッチします, アルファベットでも英数字でもなんでもいいです.

 次に[0-9A-Z]は10種の数あるいは26種のアルファベットのいずれかにマッチします.

 [01234...]と書いてもいいみたいですがこのように省略できるみたいですね.

 最後に{9}というのは直前の文字の桁数を指定します.

 今回は[0-9A-Z]が対象, つまり[0-9A-Z]{9}で「数字またはアルファベット9文字」という意味です.

 

 あれ?でもASINは10桁だからおかしいよね?って思いますよね.

 これは[0-9A-Z]{9}の手前にある.で一文字マッチしているため, これを合わせて10桁にする必要があるからです.

 

 

 

f:id:thetheorier:20210624165259p:plain

 というわけで実行してみます.
 商品ページの共有ボタンは商品画像右上にあります.

 

 

f:id:thetheorier:20210624165413p:plain

 問題なければ画像のように表示されます.

 

 

 他の短縮サービスと比べちょっとは長いですがそれでも35文字まで短くなります.