PHP で curl を使って API Request
はじめに
PHP で curl を使って、API Request をする方法。
※API は JSON 形式のレスポンスを返す想定
TL;DR
curl_init
→curl_setopt
→curl_exec
→curl_close
- 500 Internal Server Error となる場合は、curl のインストール状況や有効化されているか要確認
目次
環境・条件
1 | $ grep -i pretty /etc/os-release |
詳細
curl_init
, curl_setopt
, curl_exec
, curl_close
を使う。
JSON 形式のレスポンスは json_decode
でデコード。
実行の流れ
GET で JSON 形式のレスポンスの場合は下記のイメージ。
1 | $url = 'https://path/to/api'; |
サンプル
bitFlyer Lightning API の Ticker(GET /v1/ticker
) を実行してみる。
※以下、Tinker 上での実行結果
1 | // $ php artisan tinker |
curl 実行で 500 Internal Server Error
cURL が有効になっていない(インストールされていない)場合、curl_init
を使った時点で 500 Internal Server Error となる。
インストール後、apache2 の再起動で使えるようになる(はず)。
Ubuntu 18.04 の場合は下記の流れでいけた。
1 | $ sudo apt-get install php-curl |
まとめ
curl_init
→curl_setopt
→curl_exec
→curl_close
- 500 Internal Server Error となる場合は、curl のインストール状況や有効化されているか要確認
その他・メモ
POST とか使う場合は 公式マニュアル と PHPでHTTPリクエスト(cURL&PUTでパラメータを渡す際の注意) - Qiita あたりを見ておけば良い。
参考文献
- PHP: cURL 関数 - Manual
- PHP: json_decode - Manual
- PHPでHTTPリクエスト(cURL&PUTでパラメータを渡す際の注意) - Qiita
- PHP cURLの色々な使い方 - Qiita
- WebAPIを叩く(curl) - Qiita
- LinuxでPHPのcurlをインストール・有効化する方法
関連記事
- Laravel で現在の URL 取得方法まとめ
- Laravel で Cookie を使う(参照/設定/削除)
- Laravel で PDF ファイルをブラウザで開く
- Laravel で withCount と having を使って絞り込み
- PhpSpreadsheet を使って PHP で Excel ファイルの操作(読み込み)
- Laravel で「開始日時 < 終了日時」であることをバリデーションする
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア