質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1339閲覧

カラーミーAPI 商品の順番 日付表示

sysysy

総合スコア5

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2020/03/23 10:57

編集2020/03/23 13:03

前提

カラーミーショップAPIを使って、カラーミーのグループ機能でくくってる商品一覧を、外部サイトに掲載しています。

実現したいこと1

現在だと更新順になっているので、
カラーミーのグループの画面で設定している順番で表示したいです
こちら、カラーミーの設定画面のスクショです↓
イメージ説明

実現したいこと2

日付の表示したいです。
商品の更新日か掲載日とか。

解決しました(2020-03-23 22:01)

php

1echo date('Y.n.j', $response_json['products'][$i]['pickups'][$i]['update_date']);

該当のソースコード

php

1<?php 2 3 header("Content-Type:text/html; charset=UTF-8"); 4 $request_options = array( 5 'http' => array( 6 'method' => 'GET', 7 'header'=> "Authorization: Bearer *******\r\n" 8 ) 9 ); 10 $context = stream_context_create($request_options); 11 $url = 'https://api.shop-pro.jp/v1/products.json?group_ids=*********&limit=30&fields=name,sales_price,id,image_url,pickups,pickup_type,update_date' . date('Y-m-d'); 12 13 $response_body = file_get_contents($url, false, $context); 14 $response_json = json_decode($response_body, true); 15 16 for($i=0; $i<count($response_json['products']); $i++) { 17 echo "<li class='pickup'><a href='http://localhost:8888/***************/items/?colorme_item="; 18 echo $response_json['products'][$i]['id']; 19 echo "'><div class='img'><img src='"; 20 echo $response_json['products'][$i]['image_url']; 21 echo "' alt='"; 22 echo $response_json['products'][$i]['name']; 23 echo " - ¥"; 24 echo number_format($response_json['products'][$i]['sales_price']); 25 echo "'></div><p>UP<span>↑</span> "; 26 echo //ここで掲載日の表示がしたいです 27 echo "</p></a></li>"; 28 } 29?>

上記2件の解決方法がわかると助かります。

jsonの内容は以下になります。

json

1{ 2 "products": [ 3 { 4 "name": "商品名", 5 "sales_price": 12345, 6 "id": 14930〜〜〜, 7 "image_url": "https://img21.shop-pro.jp/PA01444/833/product/14930〜〜〜〜.png?cmsp_timestamp=20200323191536", 8 "pickups": [ 9 { 10 "pickup_type": 0, 11 "order_num": null, 12 "make_date": 1584023875, 13 "update_date": 1584023875 14 } 15 ] 16 }, 17 { 18 "name": "商品名", 19 "sales_price": 12345, 20 "id": 14924〜〜〜〜, 21 "image_url": "https://img21.shop-pro.jp/PA01444/833/product/14924〜〜〜〜.png?cmsp_timestamp=20200311140002", 22 "pickups": [ 23 { 24 "pickup_type": 0, 25 "order_num": null, 26 "make_date": 1583907889, 27 "update_date": 1583907889 28 }, 29 { 30 "pickup_type": 1, 31 "order_num": null, 32 "make_date": 1583907076, 33 "update_date": 1583907076 34 } 35 ] 36 }, 37 { 38 "name": "商品名", 39 "sales_price": 12345, 40 "id": 14923〜〜〜〜, 41 "image_url": "https://img21.shop-pro.jp/PA01444/833/product/14923〜〜〜〜.png?cmsp_timestamp=20200311002302", 42 "pickups": [ 43 { 44 "pickup_type": 0, 45 "order_num": null, 46 "make_date": 1583847904, 47 "update_date": 1583847904 48 } 49 ] 50 } 51 ], 52 "meta": { 53 "total": 3, 54 "limit": 3, 55 "offset": 0 56 } 57}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/23 12:35

json といってるものがjson出はないです
sysysy

2020/03/23 12:41

ありがとうございます。。直しました。
guest

回答1

0

ベストアンサー

APIドキュメント - カラーミーショップ デベロッパー
make_date が登録日
update_date が更新日っぽいけど、これ如何に?

値はUNIXTIMEっぽいから、例えば
echo date('Y-m-d H:i:s', 1465784934);とかすれば年月日時分秒で表示できたり。

投稿2020/03/23 11:03

編集2020/03/23 11:06
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sysysy

2020/03/23 11:27 編集

早速ありがとうございます! こういうことかと思うんですが echo date('Y.n.j', $response_json['products'][$i]['make_date'];); echo $response_json['products'][$i]['make_date']; どちらもエラーになっていまいます。。 update_dateでも試しました。 Notice: Undefined index: make_date in ***.php on line ** お手数かけます。。
CHERRY

2020/03/23 11:33 編集

質問のコードでは、make_date を取得していないようにに見えますが、make_date を API から取得するようなコードに変更されていますか?
退会済みユーザー

退会済みユーザー

2020/03/23 11:38

そこにdate()つけても
sysysy

2020/03/23 11:47

すいませんどこをdate(〜)でかこうんでしょうか・・?
CHERRY

2020/03/23 11:58

API から値を取得した後で、まず、var_dump( $response_body ) を実行して、どのようや値が取得できているのかを確認してみたらどうでしょうか。
sysysy

2020/03/23 12:14

Array ( [products] =&gt; Array ( [0] =&gt; Array ( [name] =&gt; 商品名 [sales_price] =&gt; [id] =&gt; 12345 ID番号 [image_url] =&gt; https://img21.shop-pro.jp/〜〜 [pickups] =&gt; Array ( [0] =&gt; Array ( [pickup_type] =&gt; 0 [order_num] =&gt; [make_date] =&gt; 1584023875 [update_date] =&gt; 1584023875 ) ) ) [1] =&gt; Array ( 〜略〜 ) [meta] =&gt; Array ( [total] =&gt; 3 [limit] =&gt; 3 [offset] =&gt; 0 ) ) 見てみたら上記のようになってました pickupsの中にmake_dateとupdate_dateが含まれていたんですね。。これってどう取得できるのでしょうか。。? さらに実現したいこと1の順番ですが、このjsonの状態で指定の並び順になっていませんでした。「表示順」に入力している数字がどこかに含まれているわけでもないようです。。 質問ばかりですみませんが宜しくお願い致します。
sysysy

2020/03/23 12:17

見づらかったんで質問にjson追加しました
退会済みユーザー

退会済みユーザー

2020/03/23 12:28

できれば、var_export($response_body) してくれたほうが、コピペでそれを元に解読するコードをサンプル書いたりしやすいんだけど。
sysysy

2020/03/23 12:42

ありがとうございます。書き換えました。
sysysy

2020/03/23 13:00

echo date('Y.n.j', $response_json['products'][$i]['pickups'][$i]['update_date']); これで日付は解決出来ました!ありがとうございます!掲載順だけわからずです…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問