SHANON MARKETING PLATFORM API GUIDE
  • APIの利用方法
    • APIの利用方法
    • 認証
    • APIコールとメソッドリファレンス
    • 検索
    • 登録・更新
  • クライアントアプリケーション認証
    • authentication.get
  • 画面ユーザ認証
    • authapi.login
    • authinfo.getToken
    • authinfo.getCheck
    • authinfo.logout
    • authapi.agencynavigation
    • authapi.agencynavigation.back
  • 管理者
    • admin.get
    • admin.post
    • admin.put
    • admin.delete
  • キャンペーン
    • seminar.get
    • seminar.post
    • seminar.put
    • seminar.delete
    • seminaritemsetting.get
    • seminar.getSession
    • seminar.postSession
    • seminar.putSession
    • seminar.deleteSession
    • sessionitemsetting.get
  • 担当者割当
    • admin.getAssinmentSeminar
    • admin.postAssinmentSeminar
    • admin.deleteAssinmentSeminar
  • アンケート
    • enquetetemplate.get
    • enquetetemplate.getQuestion
  • 講演者
    • speaker.get
    • speakersetting.get
  • 資料
    • document.get
  • リスト
    • staticlist.get
    • staticlist.post
    • staticlist.put
    • staticlist.delete
  • リスト・リード管理
    • staticlist.getVisitor
    • staticlist.postVisitor
    • staticlist.deleteVisitor
  • 企業
    • company.get
    • company.post
    • company.put
    • company.delete
  • 企業・リード管理
    • company.getVisitor
    • company.postVisitor
    • company.deleteVisitor
  • リード
    • visitor.get
    • visitor.post
    • visitor.put
    • visitor.delete
    • visitor.getFile
    • visitor.postFile
    • visitor.putFile
    • visitor.deleteFile
    • visitorsetting.get
  • 申込
    • application.post
    • application.delete
    • seminar.getDiscount
    • visitor.getDiscounthistory
    • visitor.getBilling
    • visitor.getApplication
    • visitor.putApplication
    • counting.getApplication
  • キャンペーン申込情報
    • visitor.getApplicationSeminar
    • visitor.getApplicationSession
  • 申込フロー
    • seminar.getFlow
  • 来場
    • visitor.getAttendance
    • visitor.getAttendanceSeminar
    • visitor.postAttendanceSeminar
    • visitor.deleteAttendanceSeminar
    • visitor.getAttendanceSession
    • visitor.postAttendanceSession
    • visitor.deleteAttendanceSession
    • counting.getAttendance
  • メール送信
    • visitor.postMail
    • 一斉メール送信APIの利用方法
    • mailtemplate.get
    • mailtemplate.post
    • mailtemplate.put
    • mailtemplate.delete
    • mailsender.get
    • mailsender.post
    • mailsender.delete
  • クリックカウント
    • clickcounturl.get
  • トラッキング
    • trackingurl.get
  • メール履歴情報
    • visitor.getMail
  • アンケート履歴情報
    • visitor.getEnquete
    • enquetehistory.get
  • クリックカウント履歴情報
    • visitor.getClickcount
  • トラッキング履歴情報
    • visitor.getTrackingaccesslog
    • visitor.getTrackingsession
  • 資料履歴情報
    • visitor.getDocumentdownload
  • 活動履歴情報
    • visitor.getActivity
    • visitor.postActivity
    • visitor.putActivity
    • visitor.deleteActivity
    • activitysetting.get
  • リード変更履歴情報
    • visitor.getChangelog
    • visitor.getAddlog
    • visitor.getDeletelog
    • visitor.getMergelog
  • DM個別送信履歴情報
    • visitor.getDirectMail
  • キャンペーン設定
    • seminarsettingdata.get
    • seminarsettingdata.put
  • メッセージ
    • messagestr.get
    • messagestr.put
  • ファイル情報
    • file.get
    • file.post
  • 検索条件
    • searchcondition.get
  • バルクAPI
    • 概要
    • bulkapi.get
    • bulkapi.post
  • APPENDIX
    • APIメソッドリファレンス
    • 用語について
    • 共通エラーコード一覧
    • 都道府県IDと都道府県名の対応表
    • タイムゾーンIDとタイムゾーン名の対応表
    • 非推奨API
    • 改訂履歴
Home >> 3. 検索

3.検索

  • 検索条件指定パラメータ
    • 指定方法
    • AND条件とOR条件について
    • LIKEを使用する場合の注意点
  • 並び順指定パラメータ
    • 指定方法
    • 注意点
  • 取得件数指定パラメータ
    • 指定方法
    • 1000件以上のデータを取得する場合
    • limitで指定した件数以上のデータを取得する場合の注意
  • 非常に長い検索条件を指定する方法について
    • 指定方法
  • 追加項目について
    • 追加項目のデータ型
    • 検索条件への指定方法
    • 選択型項目における未選択の指定方法
    • 数値型項目について

検索条件指定パラメータ

パラメータ名 内容
search_key{cid} 検索キー
search_operator{cid} “検索オペレータ(式)、下記の値を指定可能
eq(=), ne(!=), ge(>=), gt(>), le(<=), lt(<), like”
search_value{cid} 検索値
Nullを指定する場合は、何も指定しません。
例: search_value1=

指定方法

search_key{cid}、search_operator{cid}、search_value{cid}の3つで1つの検索条件を表します。 {cid}は、関連する条件で同一である必要があります。

例1)「Name1=山田 and Name2=太郎」を表す検索条件
※日本語・記号は、文字コードUTF-8でURLエンコードする必要があります。

https://sample.smartseminar.jp/services/rest/visitor?api_key=55b985f4994bf940b63f6bfb0aec3f70&search_key1=Name1&search_operator1=eq&search_value1=%e5%b1%b1%e7%94%b0&search_key2=Name2&search_operator2=eq&search_value2=%e5%a4%aa%e9%83%8e&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_sig=b4a7f220f77d9319330e1f81ce2c6f8e7759790d
項目 値
api_key 55b985f4994bf940b63f6bfb0aec3f70
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
search_key1 Name1
search_operator1 eq
search_value1 山田
search_key2 Name2
search_operator2 eq
search_value2 太郎

シグネチャ計算の種は、上記パラメータを各(項目+値)の文字列の昇順で並べ替えます。

api_key55b985f4994bf940b63f6bfb0aec3f70search_key1Name1search_key2Name2search_operator1eqsearch_operator2eqsearch_value1山田search_value2太郎tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

※ (注意)

api_key・・・search_key1Name1search_operator1eqsearch_value1山田search_key2Name2search_operator2eqsearch_value2太郎・・・

とはなりませんので注意してください。

上記、シグネチャ計算の種をHMAC-SHA-1 ハッシュ値を計算しapi_sigを作成します。

※ シグネチャ(api_sig)の作成詳細は、シグネチャ(api_sig)の仕様をご覧ください。

例2)「2009年11月16日以降」を表す検索条件
※日付型は、タイムゾーンまで指定する必要があります。記号(「:」「+」)は文字コードUTF-8でURLエンコードする必要があります。

https://sample.smartseminar.jp/services/rest/visitor?api_key=55b985f4994bf940b63f6bfb0aec3f70&search_key1=DateRegist&search_operator1=ge&search_value1=2009-11-16T00%3A00%3A00%2B09&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99

|項目|値| |:—:|:—:| |api_key|55b985f4994bf940b63f6bfb0aec3f70| |token|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| |search_key1|DateRegist| |search_operator1|ge| |search_value1|2009-11-16T00:00:00+09|

シグネチャ計算の種は、上記パラメータを各(項目+値)の文字列の昇順で並べ替えます。

api_key55b985f4994bf940b63f6bfb0aec3f70search_key1DateRegistsearch_operator1gesearch_value12009-11-16T00:00:00+09tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

上記、シグネチャ計算の種をHMAC-SHA-1 ハッシュ値を計算しapi_sigを作成します。

※ シグネチャ(api_sig)の作成詳細は、シグネチャ(api_sig)の仕様をご覧ください。

AND条件とOR条件について

検索条件パラメータを下記のように指定することで、AND条件またはOR条件となります。

・AND条件:{cid}の異なる検索条件はAND条件になります。 例)「Name1=池田 and CompanyName=○×商事」を表す検索条件

https://sample.smartseminar.jp/services/rest/visitor?search_key1=Name1&search_operator1=eq&search_value1=%e6%b1%a0%e7%94%b0&search_key2=CompanyName&search_operator2=eq&search_value2=%e2%97%8b%c3%97%e5%95%86%e4%ba%8b&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99

・OR条件:{cid}の同じSearchValueを複数並べるとOR条件になります。 例)「Id=1 or Id=2 or Id=3」を表す検索条件

https://sample.smartseminar.jp/services/rest/visitor?search_key1=Id&search_operator1=eq&search_value1=1&search_value1=2&search_value1=3&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99

LIKEを使用する場合の注意点

検索オペレータに「like」を渡して検索を行なった場合、検索結果は常に部分一致で取得されるため、前方一致および後方一致での検索はできません。

その他注意点

本ドキュメントで定義していない検索条件キーを指定した場合、正しい検索結果を返却しない場合があります。

並び順指定パラメータ

パラメータ名 内容
order 並び順の項目
並び順の対象となる項目を指定します

例:リードIDで並び替える場合
order=VisitorId
direction 並び順を指定します。
「asc」(昇順:デフォルト)または「desc」(降順)

指定方法

orderで並び順の項目、directionで並び順を指定します。 昇順(asc)で並び替える場合は、デフォルトのため指定不要です。

例1)IDで降順(desc)に並び替える場合

https://sample.smartseminar.jp/services/rest/visitor?direction=desc&order=Id&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99=bcfe66c4a8ac9de324c66487a7c125ea772e29bd&api_key=55b985f4994bf940b63f6bfb0aec3f70

注意点

下記のような並び順指定はサポートしていません。

  • orderまたはdirectionを2つ以上指定した場合
  • 本ドキュメントに定義していない並び順パラメータを指定した場合

取得件数指定パラメータ

パラメータ名 内容
limit 1回のリクエストで取得するレコード件数を指定します。
(最大1000件)
offset レコードのオフセットを指定します

指定方法

limitで1回に取得するレコードの件数、offsetで取得するデータの開始位置を指定します。

例1)10件のデータを30件目から取得する場合

https://sample.smartseminar.jp/services/rest/visitor?order=Id&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99&limit=10&&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_key=55b985f4994bf940b63f6bfb0aec3f70&offset=30

1000件以上のデータを取得する場合

1回のリクエストで取得可能なデータ件数が1000件のため、1000件以上のデータを取得する場合は、offsetを使用して取得する必要があります。 offset=1000を指定することにより、1001件目から1000件(1001~2000番目の値)を取得できます。

例:2500件のデータを取得する場合は、「limit=1000&offset=0」、「limit=1000&offset=1000」、「limit=1000&offset=2000」の3回のリクエストが必要です。

2500件のデータを取得する場合

★ limitの件数は、Id等の値ではなく、インデックスでカウントされます。 例1:Id=1,3,5,7,9,11,13,15のデータが存在する場合、limit=3を指定すると、Id=1,3,5のデータが取得されます。 例2:Id=1,3,5,7,9,11,13,15のデータが存在する場合、limit=3、offset=3を指定すると、Id=7,9,11のデータが取得されます。

limitで指定した件数以上のデータを取得する場合の注意

取得対象のデータが随時更新されるような場合、offsetではなく条件を変更して取得し直すことを検討してください。 データ取得中に対象のデータが更新されると、取得対象のリストが増減したり並び順が変わることでoffsetの位置がずれることがあります。 条件を変更して取得し直すには、並び順をIdなどの一意かつ不変なものとして、その値で絞り込んでください。

例えば、ある一定の更新日時の期間のデータを取得して、更新する場合は、Idと更新日時を検索条件に指定し、並び順にIdを指定してください。

※ 2022年3月29日00:00:00から2022年3月30日00:00:00までに更新されたリードを100件ずつ取得する場合

  1. 検索条件 「DateUpdate >= “2022-03-29T00:00:00” and DateUpdate < “2022-03-30T00:00:00” and Id > 0 」、ソート条件「Id asc(昇順)」、「limit 100」で visitor.get を実行する。
  2. 検索条件 「DateUpdate >= “2022-03-29T00:00:00” and DateUpdate < “2022-03-30T00:00:00” and Id > “前回実行したAPI(1.)で取得したリードIdの最大値” 」、ソート条件「Id asc(昇順)」、「limit 100」で visitor.get を実行する。
  3. 対象となるリードが0件になるまで、2. を繰り返す。

非常に長い検索条件を指定する方法について

マーケティングプラットフォームのAPIはRESTfulなAPIとして設計されているため、あるリソース(例えばリードなど)を検索する場合にはGETメソッドを使用します。 しかしながら、GETメソッドで複雑な検索を行うとURLが非常に長くなってしまい、正しくAPIが実行されないケースがあります。 例えば2010年現在、InternetExplorerというブラウザはURLに使用できる最大文字数を2083バイトまでに制限していますし、代表的なWebサーバのApacheはリクエスト行の長さを8190バイト(うち、URL部分は8177バイト)までと制限しています。

複雑な検索を実行した結果、非常に長いURLになってしまうケースを想定し、マーケティングプラットフォームAPIではリクエストボディによる検索条件指定もサポートしています。

指定方法

APIキー、認証トークン、およびシグネチャについては、下記の例のようにURLパラメータとして指定します。 この場合シグネチャはAPIキーと認証トークンを種として計算します。

https://sample.smartseminar.jp/services/rest/visitor?api_key=xxxxx&token=xxxxxx&api_sig=xxxxx

検索条件は下記のようにXMLフォーマットで定義し、リクエストボディにセットします。

リクエストボディXMLサンプル

<?xml version='1.0' encoding='UTF-8'?>
<Request xmlns="http://smartseminar.jp/" version='1.6'>
 <SearchKey1>Id</SearchKey1>
 <SearchOperator1>eq</SearchOperator1>
 <SearchValue1>1</SearchValue1>
 <SearchValue1>2</SearchValue1>
 <SearchValue1>3</SearchValue1>
 <SearchValue1>4</SearchValue1>
 <SearchValue1>5</SearchValue1>
 <SearchValue1>6</SearchValue1>
 <SearchValue1>7</SearchValue1>
 <SearchValue1>8</SearchValue1>
 <SearchValue1>9</SearchValue1>
 <order>Id</order>
 <direction>desc</direction>
 <limit>1000</limit>
 <offset>2000</offset>
</Request>

通常GETメソッドはリクエストボディを使用できませんので、POSTメソッドを使用します。 リクエストヘッダの”X-HTTP-Method-Override”に”GET”を指定した上で、上記リクエストボディをPOSTします。

尚、リクエストボディで検索を実行する場合、APIキーと認証トークンの2つのパラメータだけでシグネチャ計算をすることになります。 セキュリティ強度に不安が残る場合、任意のパラメータを追加して強度を増すことも出来ます。「認証トークン」節の「シグネチャ計算にパラメータを加えることによるセキュリティ強化」の項をご参照ください。

追加項目について

マーケティングプラットフォームは、システムに予め用意されている基本項目のほかに、追加項目というユーザ定義型の項目を使用することができます。追加項目はユーザが定義できるため、システム毎に、追加項目の数、データ型が異なります。

追加項目のデータ型

追加項目のデータ型は、フォーム種別に対応します。

フォーム型 データ型 XMLサンプル
テキスト string <Attribute1>テキスト</Attribute1>
テキストエリア string <Attribute2>テキストエリアに記載された文章です。</Attribute2>
ラジオボタン Attribute{aid}List <Attribute3List>
<Attribute3>
<Attribute3Id>1</Attribute3Id>
<Attribute3Name>選択肢1 </Attribute3Name>
</Attribute3>
</Attribute3List>
チェックボックス Attribute{aid}List <Attribute4List>
<Attribute4>
<Attribute4Id>1</Attribute4Id>
<Attribute4Name>選択肢1 </Attribute4Name>
</Attribute4>
<Attribute4>
<Attribute4Id>2</Attribute4Id>
<Attribute4Name>選択肢2 </Attribute4Name>
</Attribute4>
</Attribute4List>
プルダウンメニュー Attribute{aid}List <Attribute5List>
<Attribute5>
<Attribute5Id>1</Attribute5Id>
<Attribute5Name>選択肢1 </Attribute5Name>
</Attribute5>
</Attribute5List>
画像 Attribute{aid}File <Attribute6File>
<Attribute6FileExtension>jpg</Attribute6FileExtension>
<Attribute6FileId>6</Attribute6FileId>
<Attribute6FileName>画像名</Attribute6FileName>
<Attribute6FilePath>/public/file/download?
id=6&view=1</Attribute6FilePath>
</Attribute6File>
<Attribute6SlaveAlt>表示用代替テキスト</Attribute6SlaveAlt>

※リード(VisitorDataType)やアンケート(EnqueteType)の追加項目において、代替テキストの使用はできません。
ファイル Attribute{aid}File <Attribute7File>
<Attribute7FileExtension>txt</Attribute7FileExtension>
<Attribute7FileId>7</Attribute7FileId>
<Attribute7FileName>ファイル名</Attribute7FileName>
<Attribute7FilePath>/public/file/download?
id=7&view=1</Attribute7FilePath>
</Attribute7File>
数値 DoubleType <Attribute8>12345</Attribute8>
日付 date <Attribute9>2017-01-01</Attribute9>
日時 dateTime <Attribute10>2017-01-01T01:01:01</Attribute10>

検索条件で指定できるオペレーター

各型の追加項目を検索条件に使用する場合は、指定可能なオペレーターは以下の表のとおり

  eq(=) ne(!=) gt(>) lt(<) ge(>=) le(<=) like
テキスト ○ ○ × × × × ○
テキストエリア ○ ○ × × × × ○
ラジオボタン ○ ○ × × × × ×
チェックボックス ○ ○ × × × × ×
プルダウンメニュー ○ ○ × × × × ×
画像 ○※ ○※ × × × × ×
ファイル ○※ ○※ × × × × ×
数値 ○ ○ ○ ○ ○ ○ ×
日付 ○ ○ ○ ○ ○ ○ ×
日時 ○ ○ ○ ○ ○ ○ ×

※ 検索値が空白値の場合は検索できません。

検索条件への指定方法

選択型項目であるAttributeList(チェックボックス、プルダウン、ラジオボタン)を検索条件に利用する場合には、 <Attribute{aid}List> の <Attribute{aid}id> カラムの値を指定してください。
Attribute{aid}で検索する場合、下記表に従って検索条件を指定してください。
検索条件に指定できる検索項目値はAttribute{aid}Idのみで、Attribute{aid}Nameは指定できません。

項目 値
検索項目(search_keyN) Attribute{aid}
検索演算子(search_operatorN) eq,ne,lt,gt,le,ge
検索項目値(search_valueN) Attribute{aid}Idの値

また、ファイル型項目であるAttribute{aid}File(ファイル、画像)を検索条件に利用する場合には、 <Attribute{aid}File> の <Attribute{aid}FileId> カラムの値を指定してください。
Attribute{aid}で検索する場合、下記表に従って検索条件を指定してください。
検索条件に指定できる検索項目値は、Attribute{aid}FileId のみで、Attribute{aid}FileExtensionやAttribute{aid}FileName,Attribute{aid}FilePath は指定できません。

項目 値
検索項目(search_keyN) Attribute{aid}
検索演算子(search_operatorN) eq,ne,lt,gt,le,ge
検索項目値(search_valueN) Attribute{aid}FileIdの値

選択型項目・ファイル型項目を検索条件に使用する際のサンプル

https://sample.smartseminar.jp/services/rest/visitor?search_key1=Attribute5&search_operator1=eq&search_value1=1&api_sig=44c477c44e599f6f4f303b4d41a002b03acb9b99&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&api_key=55b985f4994bf940b63f6bfb0aec3f70

選択型項目における未選択の指定方法

選択型項目(ラジオボタン、チェックボックス、プルダウンメニュー)を未選択で指定する方法は、値に何も指定せず、<Attribute{cid}Id> や <Attribute{cid}Name> またはその両方を送信します。

(下記サンプル参照) なお、<Attribute{cid}Id>と<Attribute{cid}Name>を両方送信する場合に、片方に有効な値が設定されている場合は、もう片方に値の指定がなくても未選択することは出来ません。 また、無効なNameの値のみを指定した場合は、未選択の指定がされます。 (無効なIdを設定した場合は、エラーが返ります。)

選択型項目における未選択指定のサンプル

<Attribute4List>
 <Attribute4>
  <Attribute4Id></Attribute4Id>
 </Attribute4>
</Attribute4List>

数値型項目について

マーケティングプラットフォームでは数値型項目のデータを浮動小数点数として扱います。 数値型の値の範囲は-1,000,000,000,000,000 < 値 < 1,000,000,000,000,000、アンダーフローの閾値は1e-307, -1e-307です。 有効桁数は15桁で、整数部、小数部合わせて16桁以上の数値が入力された場合16桁目が四捨五入されます。また、小数部末尾に0が続く場合はこれを無視します。

例1: 1.234567890123456 が入力された場合、16桁目が四捨五入され 1.23456789012346 が入力値になります。 例2: 1.2300000 が入力された場合、小数部末尾の0を無視し 1.23 が入力値になります。

指数表現は使用可能ですが、Nan(非数)やInfinity(無限大)は使用できません。 入力が指数表現の場合、マーケティングプラットフォーム内では指数表現を解いたものを扱います。また、絶対値が0,0001未満の入力は入力時の表現にかかわらず指数表記になります。

例3: 1e5 が入力された場合、 管理画面での表示やAPIで取得したときは100000 が入力値になります。 例4: 0.00001 が入力された場合、 管理画面での表示やAPIで取得したときは1e-05 が入力値になります。

日付型項目について

日付型の値のフォーマットはYYYY-mm-ddです。 日付型の値の範囲は1902-01-01 <= 値 <= 2037-12-31です。

日時型項目について

日時型の値のフォーマットはYYYY-mm-ddTHH:MM:SSです。 ※検索値の後ろにタイムゾーンもサポートします。 例1: 2017-01-01T11:11:11+09:00 例2: 2017-01-01T11:11:11Z(ZがUTC+00:00です。) 例3: 2017-01-01T11:11:11 日時型の値の範囲は1902-01-01T00:00:00Z <= 値 <= 2037-12-31T23:59:59Zです。