前提
楽天ウェブサービスのAPIを利用するので、
楽天市場のアカウントを利用してアプリケーションID等を取得する必要があるかもしれません。
cURL関数を利用する要件
PHP 8.0.0 以降の場合
libcurlパッケージの7.29.0以降のバージョンが必要。
確認手順
LinuxやMac環境なら、下記コマンドを実行する。
$ php -i | grep cURL
表示された結果が次の形であれば使用可能。
- cURL support => enabled
- cURL Information => 7.29.0以上のバージョン
念のためhttpsが使えることも確認するために、下記コマンドを実行する。
$ php -i | grep Protocols | grep https
$ php -i | grep 'SSL =>'
表示された結果が下記のようであれば使用可能。
Protocols => dict, file, ftp, ftps, gopher, gophers, http, https, imap, imaps, ldap, ldaps, mqtt, pop3, pop3s, rtmp, rtmpe, rtmps, rtmpt, rtmpte, rtmpts, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
SSL => Yes
参考資料
JSONデータ取得用URLを確認
楽天ウェブサービスのAPI Test Form にて何らかのJSONデータを取得し、その際のURLを控えておく。
コード
<?php
$url = 'https://app.rakuten.co.jp/services/api/で始まる、JSONデータ取得用URL';
// 下記のfile_get_contents関数でも取得できる。
//$result = file_get_contents($url);
//var_dump($result);
$cUrlHandler = curl_init($url);
// HTTPレスポンスステータスコードで400以上が返ってきたらエラーとする。
curl_setopt($cUrlHandler,CURLOPT_FAILONERROR, true);
// cURL関数の実行にかけられる時間を30秒に設定。
curl_setopt($cUrlHandler,CURLOPT_TIMEOUT, 30);
// HTTPSプロトコルを使用するよう設定。
curl_setopt($cUrlHandler, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
// 成功した場合、取得結果を返すよう設定。
curl_setopt($cUrlHandler, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($cUrlHandler);
if ($result === false) {
echo curl_error($cUrlHandler);
}
curl_close($cUrlHandler);
var_dump($result);
結果確認
上記コードを実行すると、成功すればJSONデータが表示される。
失敗するとエラーメッセージが表示される。