転売するのにスマホ使うの大変なので自動化してみた!複数店舗や複数商品同時に検索できます!
const md5 = text => fetch('https://md5sum.deno.dev/' + text).then(r=>r.text())
// 店舗コード
const str_cd = '002870'
// yyyyMMdd:hhmmss sources\com\locationvalue\ma2\extensions\ScreenExtensionsKt.java:78
const request_datetime = new Date().toLocaleString('sv').replaceAll(/-|:/g, '').replace(' ', ':')
// ジャン
const sku_cd = ['4549131971149']
await fetch('https://zaikoapp.plat.daisojapan.com/api_get_store_zaiko', {
method: 'POST',
body: JSON.stringify({
access_key: await md5(`${request_datetime}daiso_zaiko_api${str_cd}`),
crp_cd: 'daiso',
request_datetime,
detail: [
{ sku_cd , str_cd }
]
})
}).then(r=>r.json())
crp_cdをstandardproductsとかthreeppyにして他ブランドも在庫検索できるようになるかもね!
店舗コード
https://www.daiso-sangyo.co.jp/shop/detail/002870
Deino版ダイソー在庫検索API
curl https://daiso.deno.dev/002870/4549131971149,4549131910193,4902820101119.json
import { Md5 } from "https://deno.land/std@0.119.0/hash/md5.ts"
const headers = { 'Access-Control-Allow-Origin': '*' }
Deno.serve(async (req: Request) => {
const [str_cd, skus] = req.url.slice(23).split('/')
if (!str_cd || !skus) return new Response('Bad request', { headers, status: 400 })
const sku_cd = skus.match(/[\d,]+/)[0].split(',')
const request_datetime = new Date().toLocaleString('sv').replaceAll(/-|:/g, '').replace(' ', ':')
const access_key = new Md5().update(`${request_datetime}daiso_zaiko_api${str_cd}`).toString()
const response = await fetch('https://zaikoapp.plat.daisojapan.com/api_get_store_zaiko', {
method: 'POST',
body: JSON.stringify({
access_key,
crp_cd: 'daiso',
request_datetime,
detail: [
{ sku_cd , str_cd }
]
})
}).then(r=>r.json())
headers['Content-Type'] = 'application/json'
return new Response(JSON.stringify(response, null, 2), { headers })
});
今回はアンドロイドのコードを解析した
参考にしたソースコード
sources\com\locationvalue\ma2\app\AccessKeyUtils.java
sources\com\locationvalue\ma2\view\fragment\searchResult\SearchResultViewModel.java
sources\com\locationvalue\ma2\datasource\api\model\DaisoStoreZaikoParams.java
sources\com\locationvalue\ma2\datasource\api\RetrofitAPI.java
sources\com\locationvalue\ma2\view\adapter\SearchResultListAdapter.java
sources\com\locationvalue\ma2\datasource\api\RetrofitConstants.java
sources\com\locationvalue\ma2\view\fragment\searchResult\SearchResultNearbyStoreFragment
Comments
Let's comment your feelings that are more than good