2013.04.26
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ

FuelPHPのRequestクラスはSOAP通信をサポートしています。
http://fuelphp.com/docs/classes/request/soap.html
試しに、SOAP通信によるAPIを提供しているMantisBTの特定Issueにコメント投稿をしてみました。
// MantisBT APIのURL
$url = "[MantisBTのベースURL]/api/soap/mantisconnect.php?wsdl";
// FuelCoreRequest_Soapクラスのインスタンス
$soap = Request::forge($url, "soap");
// Issueへのコメント追加API
$soap->set_function("mc_issue_note_add");
// パラメータをセット
$soap->set_params(array(
?"username" => "[username]",
?"password" => "[password]",
?"issue_id" => [チケットのID],
?"note" => array("text" => "[コメント内容]"),
));
try
{
?// APIの実行とレスポンスの取得
?$response = $soap->execute()->response();
}
catch(Exception $e)
{
?// エラー処理
}
MantisBTのその他のAPIは “[MantisBTのベースURL]/api/soap/mantisconnect.php” から確認出来ます。
例えばGitLabのWeb hookと組み合わせて、コミットコメントからIssueのIDを割り出して、コミット内容を自動投稿とかも簡単そうですね。