演習課題「PHPを使って、JSONデータから値を出力する」
以下のWebAPIにアクセスすると、「ぱいじょ」のJSONデータを取得できます。
```
https://paiza.jp/paijo_charactors
```
右のコードエリアには、PHPを使って、このWebAPIからJSONデータを読み込んでオブジェクトに変換するプログラムがあります。このプログラムを修正して、オブジェクトに変換したJSONデータから、以下のフォーマットで値を出力してください。
```
nameの値 : likesの値
```
「:」の前後には、半角スペースを空けます。
コードの実行をして、エラーが出なければ、演習課題クリアです!
演習課題「PHPを使って、「いいね!」を投票する」
以下のWebAPIにPOSTメソッドでアクセスすると、「ぱいじょ」の指定したキャラクタに「いいね!」を投票できます。
```
https://paiza.jp/paijo_charactors/like
```
右のコードエリアにあるプログラムを修正して、名前に「kirishima」を指定し、「いいね!」を投票するプログラムを作成してください。
コードの実行をして、エラーが出なければ、演習課題クリアです!
#10:Web APIでデータを書き込もう - PHP編
Web APIを呼び出して、Webサービスにデータを書き込むプログラムをPHPで作ってみましょう。今回は、「paijoいいねAPI」を呼び出して、いいねを投票するプログラムを作成します。
get_postJSON.php<?php
$uri = 'https://paiza.jp/paijo_charactors';
$response = file_get_contents($uri);
// echo $response;
$jsonObject = json_decode($response, true);
// print_r($jsonObject);
foreach($jsonObject as $item) {
echo implode(',', $item) . PHP_EOL;
}
get_postJSON.php<?php
$uri = 'https://paiza.jp/paijo_charactors';
$response = file_get_contents($uri);
// echo $response;
$jsonObject = json_decode($response, true);
// print_r($jsonObject);
foreach($jsonObject as $item) {
// echo implode(',', $item) . PHP_EOL;
echo $item['name'] . ':' . $item['likes'] . PHP_EOL;
}
get_postJSON.php<?php
$uri = 'https://paiza.jp/paijo_charactors';
$postUri = $uri . '/like';
$jsonObject = http_build_query(['name' => 'rokumura']);
$context = stream_context_create (
[
'http' =>
[
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $jsonObject
]
]
);
$result = file_get_contents ($postUri, false, $context);
print_r($result);
- PHP: json_decode - Manual
https://www.php.net/manual/ja/function.json-decode.php
- PHPでJSONデータの取得の仕方 - Qiita
https://qiita.com/fantm21/items/603cbabf2e78cb08133e
- PHPでJSONのデータを処理する方法
https://syncer.jp/how-to-use-json
- PHP: file_get_contents - Manual
https://www.php.net/manual/ja/function.file-get-contents.php
- 【PHP】file_get_contentsでPOSTデータの送信を行う | ScrapEngineer
http://scrap.php.xdomain.jp/php_file_get_contents_post/
- APIなどにfile_get_contents()を使うのはオススメしない理由と代替案 - Qiita
https://qiita.com/shinkuFencer/items/d7546c8cbf3bbe86dab8