Web APIの利用 Garoon編

Garoon API ドキュメント

Garoon REST API と Garoon SOAP API と Garoon JavaScript API

テスト環境として、Garoonのデモサイトを利用する。

ホームページのURL : https://onlinedemo2.cybozu.info/scripts/garoon/grn.exe/portal/index
デモのユーザ  ID : suzuki   PASS : suzuki

Garoon REST API

ユーザの認証 :
ID : PASS という方式で記述  : 
suzuki:suzuki
base64_encodeにエンコード
$auth_txt = ‘suzuki:suzuki’;
$base64G = base64_encode($auth_txt);
c3V6dWtpOnN1enVraQ== が生成された。
スケジュール
URL : 
https://onlinedemo2.cybozu.info/scripts/garoon/grn.exe/api/v1/schedule/events/123
CURLを使って送る

$res = shell_exec(“curl -X GET ‘https://onlinedemo2.cybozu.info/scripts/garoon/grn.exe/api/v1/schedule/events/123’ \
-H ‘X-Cybozu-Authorization: c3V6dWtpOnN1enVraQ=='”);
$json = json_decode($res, true);
echo “json<pre>” ;
print_r($json) ;
echo “</pre>” ;

Garoon SOAP API
xmlを送る
メッセージ

API名 : MessageGetThreadsById

$url = ‘https://onlinedemo2.cybozu.info/scripts/garoon/grn.exe/cbpapi/message/api?WSDL’;

$ch = curl_init($url);

$xmlData = ‘<?xml version=”1.0″ encoding=”UTF-8″?>
<soap:Envelope xmlns:soap=”http://www.w3.org/2003/05/soap-envelope”>
<soap:Header>
<Action>
MessageGetThreadsById
</Action>
<Security>
<UsernameToken>
<Username>suzuki</Username>
<Password>suzuki</Password>
</UsernameToken>
</Security>
<Timestamp>
<Created>2010-08-12T14:45:00Z</Created>
<Expires>2037-08-12T14:45:00Z</Expires>
</Timestamp>
<Locale>ja</Locale>
</soap:Header>
<soap:Body>
<MessageGetThreadsById>
<parameters>
<thread_id>20</thread_id>
</parameters>
</MessageGetThreadsById>
</soap:Body>
</soap:Envelope>’;

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‘Content-Type: text/xml; charset=UTF-8’,
));

$response = curl_exec($ch);

// 名前空間の ‘/:/’を ‘_’に変換しておくと楽になる。
$string = preg_replace(‘/:/’,’_’,$response);

//xmlのobjに
$xml = new SimpleXMLElement($string);
//objからjsonのエンコード・デコードを利用して配列に変換するのが簡単
$json = json_encode($xml);
$array = json_decode($json,TRUE);

Previous article

MatterMostをphpで操作