PCAクラウド Web-API for kintone Javascript API

プラグイン「PCAクラウド Web-API for kintone」を追加したアプリは以下の関数が使用できます。

関数名 同期/非同期 説明
pca.webapi.hasAccess 同期 アクセストークンが有効かを取得します。
pca.webapi.login 非同期 PCAクラウド Web-API にログインします。
pca.webapi.logout 非同期 PCAクラウド Web-API からログアウトします。
pca.webapi.getLogOnUser 非同期 ログイン中のユーザー情報を取得します
pca.webapi.getLogOnDataArea 非同期 ログイン中のデータ領域情報を取得します。
pca.webapi.findDataArea 非同期 ログイン中のユーザーが使用可能なデータ領域を取得します。
pca.webapi.selectDataArea 非同期 使用するデータ領域を変更します。
pca.webapi.send 非同期 Web-API を実行します。

保持するアクセストークンが有効かを取得する

保持するアクセストークンが有効かを取得します。
返り値が false の場合はログイン (pca.webapi.login) が必要です。

関数

pca.webapi.hasAccess()

引数

なし

返り値の例

true

サンプルコード

var result = pca.webapi.hasAccess();
console.log(result);

ログイン

PCAクラウド Web-API にログインします。

OAuth 2.0 認可コードグラントで PCAクラウド Web-API のアクセストークン、リフレッシュトークン等を取得し、localStorage に保存します。

以下の関数 getLogOnUser, getLogOnDataArea, findDataArea, selectDataArea, send はこのアクセストークンを使用します。
アクセストークンの有効期限が切れている場合は自動的にトークンのリフレッシュが行われます。

ログインの実行に必要な認証情報は、事前にプラグインの設定で設定して下さい。
Web-API の実行に必要な認証情報のうち秘密にする情報 (認証ユーザーIDなど) はアプリの利用者からはアクセスできないようになっています。
詳細は次の項目を参照して下さい。

外部の REST API の実行に必要な情報をプラグインに保存する

関数

pca.webapi.login(dataAreaName, callback, error)

引数

引数 必須 説明
dataAreaName 文字列 省略可 ログイン後に選択するデータ領域名 (例: 'P20V01C001KON0001').
null または 空文字列を指定した場合はデータ領域を選択しません。別途 pca.webapi.selectDataArea() を実行してください。
callback function() 省略可 リクエストが完了したあとに実行する関数を指定します。
省略した場合は kintone.Promise オブジェクトが返され解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

if (!pca.webapi.hasAccess()) {
	pca.webapi.login('P20V01C001KON0001', function() {
		console.log('success');
	}, function(reason) {
		console.log(reason);
	})
}

ログアウト

PCAクラウド Web-API からログアウトします。

関数

pca.webapi.logout(callback, error)

引数

引数 必須 説明
callback function() 省略可 リクエストが完了したあとに実行する関数を指定します。
省略した場合は kintone.Promise オブジェクトが返され解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

pca.webapi.logout(function() {
	console.log('success');
}, function (error) {
	console.log(error);
});

ログイン中のユーザー情報を取得

ログイン中のユーザー情報を取得します。

関数

pca.webapi.getLogOnUser(callback, error)

引数

引数 必須 説明
callback function(Object result) 省略可 リクエストが完了したあとに実行する関数を指定します。
関数の引数にはオブジェクト (BECommonSystemUser) が渡されます。
省略した場合は kintone.Promise オブジェクトが返され、オブジェクト (BECommonSystemUser) で解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

pca.webapi.getLogOnUser(function(result) {
	console.log(result);
}, function (error) {
	console.log(error);
});

出力結果例

{"UserId":"guest","Name":"ゲストユーザー","UserLevel":"Normal","CreateTime":"2015-12-09T18:07:31.149","UpdateTime":"2015-12-09T18:07:31.149"}

ログイン中のデータ領域情報を取得

ログイン中のデータ領域情報を取得します。

関数

pca.webapi.getLogOnDataArea(callback, error)

引数

引数 必須 説明
callback function(Object result) 省略可 リクエストが完了したあとに実行する関数を指定します。
関数の引数にはオブジェクト (BECommonDataArea) が渡されます。
省略した場合は kintone.Promise オブジェクトが返され、オブジェクト (BECommonDataArea) で解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

pca.webapi.getLogOnDataArea(function(result) {
	console.log(result);
}, function (error) {
	console.log(error);
});

出力結果例

{"Name":"P20V01C001KON0001","DataVersion":"1.35","CompanyCode":"0001","CompanyName":"筋斗雲株式会社","CompanyKana":"キントウンカブシキガイシャ","CompanyTerm":"0","CompanyTermStart":"0","CompanyTermEnd":"0","CompanyType":"0","CompanyKoyomi":null,"CompanyInt1":"0","CompanyInt2":"0","CompanyInt3":"20000101","CompanyInt4":"0","CompanyInt5":"0","CompanyString1":"筋斗雲株式会社","CompanyString2":null,"CompanyString3":null,"CompanyString4":null,"CompanyString5":null,"CompanyDescription":"kintone連携用データ領域です。","CompanyChainId":"fa178a56-7499-44df-4a79-62bea5271fc7","Status":"Healthy","StatusDescription":null,"UpdateTime":"2016-03-10T15:49:09.579"}

ログイン中のユーザーが使用可能なデータ領域を取得

ログイン中のユーザーが使用可能なデータ領域を取得します。

関数

pca.webapi.findDataArea (callback, error)

引数

引数 必須 説明
callback function(Object result) 省略可 リクエストが完了したあとに実行する関数を指定します。
関数の引数にはオブジェクト (BECommonDataArea の配列) が渡されます。
省略した場合は kintone.Promise オブジェクトが返され、オブジェクト (BECommonDataArea の配列) で解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

pca.webapi.findDataArea(function(result) {
	console.log(result);
}, function (error) {
	console.log(error);
});

出力結果例

[{"Name":"P20V01C001KON0001","DataVersion":"1.35","CompanyCode":"0001","CompanyName":"筋斗雲株式会社","CompanyKana":"キントウンカブシキガイシャ","CompanyTerm":"0","CompanyTermStart":"0","CompanyTermEnd":"0","CompanyType":"0","CompanyKoyomi":null,"CompanyInt1":"0","CompanyInt2":"0","CompanyInt3":"20000101","CompanyInt4":"0","CompanyInt5":"0","CompanyString1":"筋斗雲株式会社","CompanyString2":null,"CompanyString3":null,"CompanyString4":null,"CompanyString5":null,"CompanyDescription":"kintone連携用データ領域です。","CompanyChainId":"fa178a56-7499-44df-4a79-62bea5271fc7","Status":"Healthy","StatusDescription":null,"UpdateTime":"2016-03-10T15:49:09.579"}]

データ領域の変更

使用するデータ領域を変更します。

関数

pca.webapi.selectDataArea(dataAreaName, callback, error)

引数

引数 必須 説明
callback function() 省略可 リクエストが完了したあとに実行する関数を指定します。
省略した場合は kintone.Promise オブジェクトが返され解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

pca.webapi.findDataArea()
.then(function (result) {
	console.log(result);
	return pca.webapi.selectDataArea(result[0].Name);
})
.then(function () {
	console.log('データ領域を選択しました: ' + pca.webapi.dataarea_name);
})

Web-API を実行する

PCAクラウド Web-API にリクエストを送信し、レスポンスを受信します。

関数

pca.webapi.send(url, method, headers, data, callback, error)

引数

引数 必須 説明
uri 文字列 必須 実行する Web-API のURI
(例: "/Find/MasterSms?Code=0001")
method 文字列 必須 HTTPメソッド。GET, POSTのいずれかを指定
headers オブジェクト 必須 リクエストヘッダを指定します。
何も指定しない場合は {} を指定します。
Content-Type, Accept を指定しない場合の規定値は 'application/json' になります。
data オブジェクトまたは文字列 必須 リクエストに載せるデータ。 何も指定しない場合は {} を指定します。
callback function([String responseText, Number httpStatusCode, Object responseHeaders]) 省略可 リクエストが完了したあとに実行する関数を指定します。
関数の引数には次の3つの情報が格納された配列が渡されます。

・第一引数: レスポンスボディ (文字列)
・第二引数: HTTPステータスコード (数値)
・第三引数: レスポンスヘッダ (オブジェクト)

省略した場合は kintone.Promise オブジェクトが返され、上記の配列で解決されます。
error function(String error) 省略可 リクエストが失敗した場合に実行する関数を指定します。
関数の引数にはエラー情報(文字列)が渡されます。
callback を省略した場合は kintone.Promise オブジェクトが返され、エラー情報(文字列)で棄却されます。

返り値

引数のcallbackを省略した時、kintone.Promiseオブジェクトを返します。
callbackを指定した場合返り値はありません。

サンプルコード

  • GET の例
pca.webapi.send('/Find/MasterSms?Code=1001', 'GET', {}, {})
.then(function (args) { // args[0]: responseBody, args[1]: httpStatusCode, args[2]: headers
	var res = JSON.parse(args[0]);
	if (args[1] != 200) {
		return kintone.Promise.reject(res.Message);
	}
	console.log(res);
})
.catch(function (error) {
	console.log(error);
});
  • POST の例
pca.webapi.send('/FindByCondition/MasterSms', 'POST', {}, {
	BEMasterSmsCondition: {
		SyohinCode: '1001'
	}
})
.then(function (args) { // args[0]: responseBody, args[1]: httpStatusCode, args[2]: headers
	var res = JSON.parse(args[0]);
	if (args[1] != 200) {
		return kintone.Promise.reject(res.Message);
	}
	console.log(res);
})
.catch(function (error) {
	console.log(error);
});

出力結果例 (GET, POST とも)

{"ArrayOfBEMasterSms":{"BEMasterSms":[{"BEVersion":"4","SyohinCode":"1001","SyohinMei":"甘納豆 1箱入り","SyohinMei2":null,"SyohinCode2":null,"SyohinCode3":null,"SyohinKubun1":"0000","SyohinKubun2":"0000","SyohinKubun3":"0000","SyohinKubun4":"0000","SyohinKubun5":"0000","Tani":null,"Irisu":"0.0000","KikakuKataban":null,"Color":null,"Size":null,"SokoCode":"0000","SyuShiresaki":null,"HyojunKakaku":"945.0000","Genka":"0.0000","Baika1":"0.0000","Baika2":"0.0000","Baika3":"0.0000","Baika4":"0.0000","Baika5":"0.0000","ShireTanka":"0.0000","ZaikoTanka":"0.0000","SystemKubun":"0","MasterKubun":"0","ZaikoKanri":"0","JissekiKanri":"0","ZeiKubun":"2","ZeikomiKubun":"0","TankaKeta":"0","SuryoKeta":"0","SyohinKomoku1":"0.0000","SyohinKomoku2":"0.0000","SyohinKomoku3":"0.0000","UriageKeisan":"0","ShireKeisan":"0","ShiyoKubun":"0","TorokuUser":"4","TorokuProgram":"C1X00","Torokubi":"2015-09-30T10:23:57","KosinUser":"2","KosinProgram":"C1X00","Kosinbi":"2015-12-14T17:26:43.844","SyohinYobiShort1":"0","SyohinYobiShort2":"0","SyohinYobiShort3":"0","SyohinYobiInt1":"0","SyohinYobiInt2":"0","SyohinYobiInt3":"0","SyohinYobiDecimal1":"0.0000","SyohinYobiDecimal2":"0.0000","SyohinYobiDecimal3":"0.0000","SyohinYobiString1":null,"SyohinYobiString2":null,"SyohinYobiString3":null,"TankaTorokuUser":"4","TankaTorokuProgram":"C1X00","TankaTorokubi":"2015-09-30T10:23:57","TankaKosinUser":"2","TankaKosinProgram":"C1X00","TankaKosinbi":"2015-12-14T17:26:43.805","TankaYobiShort1":"0","TankaYobiInt1":"0","TankaYobiDecimal1":"0.0000","IrisuKeta":"0","HakosuKeta":"0","SuryoHasu":"0","YukoKikanKaishi":"0","YukoKikanSyuryo":"0","Comment":null}]}}