ITソリューション課の中村です。
今回は「クラウドサイン」というサービスを、社内管理サイトとAPI連携した話をしていきます。
クラウドサインは「紙と印鑑」を「クラウド」に置き換え、契約作業をパソコンだけで完結させるサービスです。
弁護士ドットコム株式会社が運営しています。
しずおかオンラインでは様々なツールを使っていますが、中には社内で作っているツールもあります。その売上管理サイトにクラウドサインを連携させることになりました。
今までは紙で管理
これからはweb上で管理
今まではサイト上で見積書のPDFを作成し、印刷した紙を持参もしくは郵送することでクライアント様に確認していただいていました。それをサイトからクラウドサイン経由でクライアント様に確認していただけるようにしよう、というのが目標です。
作成したPDFのプレビュー画面に「クラウドサインから送信」というボタンを設置することにしました。
このボタンを押すとクラウドサイン上に送りたい書類が登録されるようにします。
その際、書類の送信先や記入欄の設定なども自動で行われるようにします。
具体的な実装としては、ボタンが押されるとajaxでメソッドが実行され、クラウドサインAPIを叩いていくようにしました。
クラウドサインの利用ガイドや仕様書をもとに、今回は下記の流れで処理を行いました。
下準備
0.クラウドサインのサイトでユーザーのクライアントIDを発行しておく
処理
1.アクセストークンを設定
2.下書きを新規作成
3.PDFを追加
4.宛先を追加
5.自由記入欄の追加
まず、「1.アクセストークンを設定」です。
//クラウドサイン連携
$base_url = "https://api.cloudsign.jp";
//1.アクセストークンを設定
$client_id = ●●●; //クライアントID取得
$curl = curl_init();
$options = array(CURLOPT_URL => $base_url.'/token?client_id='.$client_id,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
);
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
curl_close($curl);
$arr = json_decode($response);
$token = $arr->{'access_token'}; //アクセストークン取得
$header = array('Authorization: Bearer '.$token);
クラウドサインで発行しておいたクライアントIDを使います。
指定されたURLのパラメーターにクライアントIDを入れてPOSTするとアクセストークンが返ってきます。
ここで返ってきたアクセストークンを一連の処理の中でヘッダーに入れておく必要があります。
次に、「2.下書きを新規作成」です。
//2.下書きを新規作成
$data = array('title' => ●●●, 'can_transfer' => true);
$curl = curl_init();
$options = array(CURLOPT_URL => $base_url.'/documents',
CURLOPT_CUSTOMREQUEST => 'POST', //HTTP POST を行う
CURLOPT_POSTFIELDS => $data, //POSTするデータを入れる
CURLOPT_HTTPHEADER => $header, // リクエストにヘッダーを含める
CURLOPT_RETURNTRANSFER => true, //curl_exec()の返り値を返す。
);
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
curl_close($curl);
$arr = json_decode($response);
$document_id = $arr->{'id'}; //クラウドサイン下書きドキュメントID取得
「1.アクセストークンを設定」と違うのは、CURLOPT_POSTFIELDSとCURLOPT_HTTPHEADERがあるところです。
POSTする内容を入れたり、ヘッダーに取得したアクセストークンを含めたりしています。
そして、返ってくるドキュメントIDはこの後の処理で必要なので変数に入れておきます。
「3.PDFを追加」以降の処理も基本は2と同じで、行いたい処理を仕様書に合わせて追加していきます。
返ってくる値で必要なものは変数に入れて、次の処理で使用していきます。
webの基礎知識として、リクエストとレスポンスをしっかり意識するきっかけになったように思います。
1人でやっていたら行き詰っていたと思いますが、アドバイスをくれたり足りない知識を補う本を紹介してくれる先輩達がいるので実装することができました。
しずおかオンライン中途採用社員も、積極募集中!
しずおかオンラインののスタッフとして、地域の魅力を伝える仕事です。
くわしくはこちら!