スパイラル サポートサイト

powered by SPIRAL PLACE®

HOME > 機能 > カスタムプログラムでのPHP利用

カスタムプログラムでのPHP利用

概要

カスタムプログラムとは、PHPスクリプトをスパイラル環境上に用意されたPHPサーバで実行させることが出来る機能です。
管理画面上では「開発」→「カスタムプログラム」メニューよりアクセスできます。
カスタムプログラムは以下の様な特徴を持っています。


  • HTML無しの単独プログラムとして実行可能
  • 管理画面から直接実行できる(引数指定も可能)
  • 定期実行
  • オープンAPIとして利用可能


目次

  1. PHPスクリプトの即時実行
  2. PHPスクリプトの定期実行
  3. オープンAPIとして利用する


1. PHPスクリプトの即時実行

カスタムプログラムでは、PHPスクリプトを登録して実行できます。
PHP実行環境がなくても、スパイラル内でPHPスクリプトの実行が完結します。
「基本設定」画面にPHPスクリプトを登録して即時実行が可能です。


2. PHPスクリプトの定期実行

「定期実行」画面から「月」「日 / 曜日」「時」「分」を組み合わせてタイミングを指定して実行させることが可能です。


実行結果は以下のように「実行ログ」画面から確認することが出来ます。


定期実行の通知メール

通知メールでも実行結果を確認することが可能です。
設定によりPHPの定期実行時に通知メールを送信します。


設定方法としては、「定期実行」画面において定期実行の通知にチェックを入れます。


また、「管理グループ」→「通知メール受信設定」→「PHPエラー通知メール」画面において、定期実行の通知を「受け取る」に設定します。


エラーが発生した場合には、こちらの設定のみでエラー通知が配信されます。


3. オープンAPIとして利用する

登録されたカスタムプログラムはオープンAPIという形で外部から実行することも可能です。


オープンAPIとは、APIシークレットを利用することなくトークンのみでアクセス可能なユーザ独自のプログラムをAPIとして提供する機能です。
APIトークンのみで実行可能だという性質上、秘匿性の高い情報のやりとりには適していません。
スパイラルがシステムで提供しているAPIとの違いなどはスパイラルAPIを参照下さい。


オープンAPIとして利用するには、カスタムプログラムの「基本設定」画面においてオープンAPIを「許可する」にチェックを入れて保存します。


許可されたカスタムプログラムは、以下の様にAPIトークンやカスタムプログラムタイトル(および必要であれば引数やコールバック関数名)をパラメータに指定してGETメソッドで呼び出すことが出来ます。


なお、ここで利用するAPIトークンに関しては、セキュリティの観点からオープンAPI呼び出し専用に作成したAPIトークンを利用することをおすすめします。


以下にオープンAPIを使った場合の簡単なサンプルを示します。ここではJavaScriptを使ってオープンAPIの実行結果を処理してHTMLに反映しています。


カスタムプログラム: openapisample

<?php
$SPIRAL->setApiTokenTitle("sample");
$args = $SPIRAL->getArgs();
$db = $SPIRAL->getDataBase("member");
$db->addEqualCondition("id", $args[0]);
$db->addSelectFields("email");
$result = $db->doSelect();
echo $result["data"][0]["email"];
?>


オープンAPIを呼び出すクライアントプログラム

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>Open API Sample</title>
</head>
<body>
<h3>オープンAPI呼び出し結果</h3>
<div id="apiresult">オープンAPIを呼び出します</div>
<script type="text/javascript">
// カスタムプログラム実行完了後に呼ばれる関数
function onComplete(_result) {
if (_result || (_result.code = 0)){
alert('実行に失敗しました。');
} else {
document.getElementById("apiresult").innerHTML = _result.output;
}
}
</script>


<!-- titleのカスタムプログラムを実行します -->
<script type="text/javascript" src="https://xxx.smp.ne.jp/api/service/custom_program/run/request?spiral_api_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&title=openapisample&arg=1&callback=onComplete"></script>
</body>
</html>


最終更新日:2018/11/1