エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


PHPで APIにアクセスする際などに使用する cURLのサンプルプログラム

      2025/01/31

PHPで APIにアクセスする際などに使用する cURLのサンプルプログラム

 
カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム
上記のカオナビ APIにアクセスする cURLの関数を作成しました。
 
上記の記事でも少し解説をしていますが、あくまでもカオナビ APIにアクセスするための記事ですので、こちらの記事では改めて、cURLの関数について解説をしようと思います。
 
 

cURLには多様なオプションが用意されている

 
cURLのオプションは多様で、さまざまなオプションが用意されています。
ここでは、APIにアクセスするときに使用することがあるオプションを実装した関数として作成してみました。
 
 

 
 

ヘッダー情報を指定する

 
ヘッダー情報は下記のように配列で指定します。
ヘッダー情報を複数指定する場合は、配列の値として追加をしていきます。
 

 
カオナビAPIでは、ヘッダー情報に Tokenを指定して送信する方式ですので、上記のように指定します。
 
このほか、ヘッダー情報としては「"X-HTTP-Method-Override: GET"」などを指定する APIもあるかと思います。
 
 

POSTする値を指定する

 
APIにアクセスする際、GET形式で URL内にパラメータを付与する方法もありますが、ID、PASSを送信する際はセキュリティの配慮を行い、POSTで情報を送信する場合もあります。
 
その場合は、POSTで送信する情報を指定しますが、下記のように配列で、キーと値を指定します。
 

 
 

「curl_errno()」で取得する「$errorNo」の情報を判定する

 

 
「curl_errno()」で取得する上記の「$errorNo」に入っているエラーコードの詳細は下記のページから確認することができます。
https://www.php.net/manual/ja/function.curl-errno.php
 
エラー内容を見てもらって分かるように、ここで発生するエラーは、指定の URLにアクセスできないというエラーが多数を占めています。
開発段階ではデバッグに役に立つ情報かと思いますが、実運用段階では APIにはアクセスできる前提で動作していますので、エラーがあるか、ないかだけで分岐すれば足りるのではないか、と思います。
実運用段階でのエラーは、APIサーバが落ちているとか、URLが変わったとか、ネットワーク障害が発生したとか、プログラムの処理とは関係ない場合が多数を占めますので、エラーコードをログに残してエラー情報を確認できるようにしておけば、詳細な振り分けはあまり意味はない用意も思います。
 
 

「curl_getinfo()」で取得するステータスコードを判定する

 

 
前項の「$errorNo」に入っているエラー情報と異なり、上記のステータスコードによるエラー判定は、APIが返答するエラーコードになります。(APIにはアクセスができた上でのエラーになります。)
 
APIにアクセスし、正常に情報が取得できた場合はステータスコード「200」が返ってきますので、その場合は正常処理とします。
 
それ以外のエラー内容については、API毎に異なりますので、API毎にそれぞれあった振り分け処理を作成する必要があるかと思います。
 
APIにアクセスするプログラムの性質にもよると思いますが、ここはエラーコードによってある程度分岐の処理がある方がいいのかと思います。
 
 
今回作成した cURLの関数は、カオナビ APIにアクセスすることを前提に作成したものですが、他の APIにアクセスする際も同じように利用できる場合が多いかと思いますので、必要に応じてカスタマイズして使用していただければ、と思います。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由

include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う
WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

strptimeはWindowsのPHPには未実装。LinuxとMacで挙動が異なる。PHP8.1で非推奨になる。なので日付のチェックはdate_parse_from_formatを使おう。使い方を詳細解説。

Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace

ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。

数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!
数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!

PHPでintegerとdoubleが混在するような計算をする場合は要注意!計算結果が整数値であっても途中で使用する変数にdoubleの値が入っているときは計算結果がintegerではない場合があります。

PHP range関数を使って階乗と重複組み合わせを計算

PHPの range関数を使って階乗と重複組み合わせを計算し、それを元に乱数発生器を作成しました。

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説
路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

複数銘柄を指定して株価チャートを一覧するツール公開

入力銘柄の5日間、3か月間、6か月間、1年間、2年間の株価チャートを一覧表示しますのでチャートで売買判断をするのに最適です。