(BizRobo)ロボットからAPIでKintoneアプリへレコード登録してみた

<h2 name="fe64d71a-0228-44fb-b2c8-c36eafea8305" id="fe64d71a-0228-44fb-b2c8-c36eafea8305">はじめに</h2><p name="164f7c44-cfba-4950-b914-6cce9edcf1e7" id="164f7c44-cfba-4950-b914-6cce9edcf1e7">
※こちらの記事は以前noteで投稿していた記事の移植版です。

今回は、ロボットを使い、Kintoneで構築したアプリに対し、<br>Kintoneアプリの画面上の操作を行うことなくレコード登録をしてみようという記事です。</p><p name="a14b7318-e880-4c53-a00b-8c3c9a1b3db8" id="a14b7318-e880-4c53-a00b-8c3c9a1b3db8">Kintoneというのは業務アプリをノンプログラミングで直感的に構築できる便利なクラウドサービスです。<br>
詳しくはサイボウズさんのページでどうぞ。</p><p name="c39cf0e1-cee8-4672-be75-dcb0a46bd447" id="c39cf0e1-cee8-4672-be75-dcb0a46bd447">はじめての方へ。キントーンとは？<br>
<a href="https://kintone.cybozu.co.jp/what_is_kintone/" target="_blank" rel="nofollow noopener">https://kintone.cybozu.co.jp/what_is_kintone/</a></p><p name="a258a97e-d229-4200-85ad-e4e7a65b2807" id="a258a97e-d229-4200-85ad-e4e7a65b2807">Kintoneでレコードを登録するとき、人間がやるときはこういう画面で1つ1つ手で入力していきます。</p><figure name="709a1983-8760-4cd7-988d-44fa408deffc" id="709a1983-8760-4cd7-988d-44fa408deffc"><img src="https://i.gyazo.com/9721764d5f711d4f109538bc1e6f170a.png" alt="" width="620" height="280"><figcaption>Kintone手入力</figcaption></figure><p name="649166db-957d-46b5-b92d-2a056b2fcad7" id="649166db-957d-46b5-b92d-2a056b2fcad7">もちろん普通に人間が使うだけでも便利なツールなのですが、Webページや他のシステム等から転記したい、といったとき、単純な繰り返し作業になることも多いので、こういうことにもRPAを使うと便利なわけです。<br>
画面はテンプレートで用意されている問診表アプリですが、ここにもRPAは利用できて、例えば病院等で手で患者さんが書かれた問診票を全部人間が読んで手で転記することもできますが、これをAI-OCRで読み取ってデータ化したのをRPAで転記するという利用法もあるわけです。</p><p name="9c710d59-d137-4419-9f9a-a25e1a5895ef" id="9c710d59-d137-4419-9f9a-a25e1a5895ef">決してサイボウズさんの回し者ではありませんが、様々なツールを組み合わせると、その効果はさらに広がるという一例でした。</p><p name="38ebf12b-f55c-436e-b039-e6126a2523df" id="38ebf12b-f55c-436e-b039-e6126a2523df">今回はその転記作業について、ロボットでWeb画面上の操作をして転記するのではなく、APIを使ってやってみます。<br>
APIってなんぞや？って方はこちらご参考ください。</p><p name="dfbc450d-5264-4a7e-898f-025a473e1591" id="dfbc450d-5264-4a7e-898f-025a473e1591"><a href="https://wa3.i-3-i.info/index.html" target="_blank" rel="nofollow noopener">「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典</a><br>
<a href="https://wa3.i-3-i.info/word12428.html" target="_blank" rel="nofollow noopener">https://wa3.i-3-i.info/word12428.html</a></p><p name="b9f0e8e9-f07c-4c4f-9bf8-20f59bb9d93b" id="b9f0e8e9-f07c-4c4f-9bf8-20f59bb9d93b">つまり、Kintoneには外部のプログラムから作業を依頼する窓口が用意されているので、ロボットからこの値をレコードとして登録してください、という作業をお願いすることになります。</p><h2 name="4ba9596e-10a2-4921-8ffd-171ac7072a61" id="4ba9596e-10a2-4921-8ffd-171ac7072a61">Kintoneの設定</h2><p name="4b96ad50-c0c9-4a63-93f2-bf9d5e8e784f" id="4b96ad50-c0c9-4a63-93f2-bf9d5e8e784f">まずKintoneでアプリの設定をしないことには始まりません。</p><p name="47267a86-5311-42ee-b66d-0fcd1d3d8315" id="47267a86-5311-42ee-b66d-0fcd1d3d8315">前提として最低でもアプリの管理権限を持つユーザーをご用意ください。<br>
これがないと後々アプリの編集画面からロボットで指定するフィールドコードの確認ができません。</p><p name="c70fabed-32d6-4296-b780-cfce7dc68c56" id="c70fabed-32d6-4296-b780-cfce7dc68c56">フィールドコードとは-設定手順<br>
<a href="https://jp.cybozu.help/k/ja/id/040504.html#autocalc_fieldcode_30" target="_blank" rel="nofollow noopener">https://jp.cybozu.help/k/ja/id/040504.html#autocalc_fieldcode_30</a></p><p name="cf9ff418-7492-4db5-8fac-e734e82cade9" id="cf9ff418-7492-4db5-8fac-e734e82cade9">とは言っても、基本的に設定は不要です。<br>
APIを投げるときのKintoneへの認証方法をユーザーのパスワード認証にするか否かで作業有無が変わります。</p><p name="44346524-84ba-47e3-988b-018b2ff24857" id="44346524-84ba-47e3-988b-018b2ff24857">アプリからトークン発行してトークンで認証する場合のみここからの設定が必要です。<br>
トークン発行する場合、場合によってはアプリ管理権限ではなく、Kintoneのシステム管理権限が必要になります。<br>
ちなみにこの記事ではパスワード認証とトークン認証両方やりますよ。</p><p name="1dfd5d4b-a53a-4e03-bbf5-d520d0d06845" id="1dfd5d4b-a53a-4e03-bbf5-d520d0d06845">kintone REST APIの共通仕様-ユーザー認証<br>
https://developer.cybozu.io/hc/ja/articles/201941754#step7</p><p name="b357ed73-8b0f-4880-82d3-0463708d1187" id="b357ed73-8b0f-4880-82d3-0463708d1187">ユーザー認証については上記ページに書かれている通りなのですが、トークン認証を使う場合には、APIトークンを発行する必要があります。</p><p name="9b545a85-7caf-4720-9720-29281f838a0f" id="9b545a85-7caf-4720-9720-29281f838a0f">APIトークンを生成する<br>
<a href="https://jp.cybozu.help/k/ja/id/040471.html" target="_blank" rel="nofollow noopener">https://jp.cybozu.help/k/ja/id/040471.html</a></p><p name="666871e2-1d8b-4348-92b8-07950bc8a61a" id="666871e2-1d8b-4348-92b8-07950bc8a61a">サイボウズさんのヘルプが分かりやすいので、発行手順については上記ページをご覧ください。</p><h2 name="cbe9fae6-d52e-4b04-8661-c7d475f12642" id="cbe9fae6-d52e-4b04-8661-c7d475f12642">ロボットの設定</h2><p name="e082711e-3d9c-4c26-9c25-74b63b3bb1f4" id="e082711e-3d9c-4c26-9c25-74b63b3bb1f4">まず、ロボットでAPIを利用する際は「REST Web サービス呼出(Call REST Web Service)」というアクションステップを利用します。<br>
参考ナレッジは以下です。</p><p name="2d4335b4-f2d6-40aa-bb16-23e3840d80d2" id="2d4335b4-f2d6-40aa-bb16-23e3840d80d2">「REST Web サービス呼出(Call REST Web Service) 」ステップ<br>
https://knowledge.bizrobo.com/hc/ja/articles/360053253091</p><p name="f9645be5-b65d-4815-9663-b957c2dc9ec3" id="f9645be5-b65d-4815-9663-b957c2dc9ec3">フル活用するにはある程度知識が必要になりますが、初心者の方はBizRoboポータルで公開されているBizRobo!CAMPUS!!の第6回API編のアーカイブ動画をご覧になると参考になると思います。</p><p name="cf8367a1-2041-4c1e-bcbe-248421448649" id="cf8367a1-2041-4c1e-bcbe-248421448649"><a href="https://portal.bizrobo.com/ja/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88/%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BC%9Abizrobo%EF%BC%81campus%EF%BC%81%EF%BC%81" target="_blank" rel="nofollow noopener">開発者向けユーザー会BizRobo! CAMPUS!!</a><br>
※要ログイン</p><p name="ed205085-5c69-40e5-a214-cc84d8b24f73" id="ed205085-5c69-40e5-a214-cc84d8b24f73">ここからはアクションの各設定部ごとに見出しを分けていきます。</p><h3 name="9068f167-a596-4012-8b72-131742176599" id="9068f167-a596-4012-8b72-131742176599">URL</h3><p name="865fe2a8-f121-4a2b-972c-bdf7ca64ece2" id="865fe2a8-f121-4a2b-972c-bdf7ca64ece2">まず、どこに対してAPIリクエストするかを決める必要があります。<br>
以下ページのURIの項目にあるように指定します。</p><p name="6ba699ac-b983-406c-bab3-c2340bb9f1e3" id="6ba699ac-b983-406c-bab3-c2340bb9f1e3">レコードの登録（POST）<br>
https://developer.cybozu.io/hc/ja/articles/202166160</p><figure name="384f92c3-6e78-449e-a9f0-9993926c7166" id="384f92c3-6e78-449e-a9f0-9993926c7166"><img src="https://i.gyazo.com/eb51482694c19d0bc8d6f738b8886eca.png" alt="" width="620" height="62"><figcaption>URL</figcaption></figure><pre name="ba64aa37-63cc-4c98-894f-6b1bcf1e6785" id="ba64aa37-63cc-4c98-894f-6b1bcf1e6785"><code>https://xxxxx.cybozu.com/k/v1/record.json</code></pre><p name="2e28782f-5e02-4933-89d9-84e0b4a208c9" id="2e28782f-5e02-4933-89d9-84e0b4a208c9">こんな感じになります。<br>
※実際のURLは公開できないのでxxxxxに置き換えています。</p><p name="ca831fc6-7293-4ac9-ba35-4fc2e42ed26f" id="ca831fc6-7293-4ac9-ba35-4fc2e42ed26f">ここはシンプルですね。</p><h3 name="782803a4-a60b-4ae8-93ef-6674ca762e73" id="782803a4-a60b-4ae8-93ef-6674ca762e73">リクエスト</h3><p name="25df58c1-35f0-4e33-8fce-fe3ebff2a4ef" id="25df58c1-35f0-4e33-8fce-fe3ebff2a4ef">次はリクエストの項目です。<br>
ここはかなり肝になる部分です。</p><p name="d3ffa3d5-74c2-48ba-a01a-2f6af58c7cfa" id="d3ffa3d5-74c2-48ba-a01a-2f6af58c7cfa">まず、初期で「GET」になっている項目を「POST」にします。<br>
主にGETはデータの問い合わせをするもので、POSTは更新をするものになりますが、今回はレコード登録という更新作業をするのでPOSTにします。</p><figure name="019b74a0-c3cb-4b6a-80c5-efe1d15dff06" id="019b74a0-c3cb-4b6a-80c5-efe1d15dff06"><img src="https://i.gyazo.com/fe2c740ca4007ecbc8db6a3625d8a5fc.png" alt="" width="620" height="150"><figcaption>リクエスト</figcaption></figure><p name="f049e834-9a7a-4212-a2a2-d31c4a42adca" id="f049e834-9a7a-4212-a2a2-d31c4a42adca">次に何をリクエストするかを決めます。<br>
「パラメータで指定」から「ローボディを指定」に変更します。</p><figure name="d61d19e2-f309-4b1a-9274-536e665ccc1e" id="d61d19e2-f309-4b1a-9274-536e665ccc1e"><img src="https://i.gyazo.com/77809e9ecc4a2753f6018edfd88b878b.png" alt="" width="620" height="122"><figcaption>ローボディを指定</figcaption></figure><p name="6615fc19-2a56-4480-b91d-470f64ad3536" id="6615fc19-2a56-4480-b91d-470f64ad3536">そうすると値を指定できますので、以下ページのリクエストボディの構造に書かれているように入力します。<br>
ちなみに変数やコンバーターも使用できます。<br>
※今回はテストなのでそのままテキスト入力します。</p><p name="c926c0a0-38d3-4f39-82f1-5e59aa2873bd" id="c926c0a0-38d3-4f39-82f1-5e59aa2873bd">レコードの登録（POST）<a href="https://developer.cybozu.io/hc/ja/articles/202166160" target="_blank" rel="nofollow noopener">https://developer.cybozu.io/hc/ja/articles/202166160</a></p><p name="94d0b102-6214-40eb-b4e4-a0ab4a783e91" id="94d0b102-6214-40eb-b4e4-a0ab4a783e91">こんな感じです。</p><pre name="4b4daf6b-39ad-4b9b-9432-955b94775058" id="4b4daf6b-39ad-4b9b-9432-955b94775058"><code>{

"app": (アプリのID),

"record": {

"(フィールドコード)": {

"value": "(フィールド値)"

          }

    }

}</code></pre><p name="d135e545-ff67-49b9-b10b-ca1d27790b6b" id="d135e545-ff67-49b9-b10b-ca1d27790b6b">テーブル等入力したい値によって諸々変わるものもあるので詳細は先ほどのページを参考にしてください。</p><p name="9a6c0863-446d-4c6a-9e09-59262a63c098" id="9a6c0863-446d-4c6a-9e09-59262a63c098">それぞれどこから持ってくるかというと、<br>
まず、アプリのIDはアプリにアクセスするときのURLの赤枠の箇所の数字です。</p><figure name="d7be786a-2693-41bc-852b-76975e932c7a" id="d7be786a-2693-41bc-852b-76975e932c7a"><img src="https://i.gyazo.com/e0f0faa93e94a2615990515a7edbdabe.png" alt="" width="383" height="52"><figcaption>アプリID</figcaption></figure><p name="c24fb7a9-4715-482f-a694-70573f406584" id="c24fb7a9-4715-482f-a694-70573f406584">次にフィールドコードですが、上の方にも書いたこちらの手順で確認できます。</p><p name="77662267-2535-44e5-8921-a75ca2f26862" id="77662267-2535-44e5-8921-a75ca2f26862">フィールドコードとは-設定手順<br>
https://jp.cybozu.help/k/ja/id/040504.html#autocalc_fieldcode_30</p><p name="18a583c1-0ec1-4495-95f4-a30feb7be3c3" id="18a583c1-0ec1-4495-95f4-a30feb7be3c3"><br>
</p><figure name="bebcee11-e1cd-4ff2-bdae-c8e5deb5ba0a" id="bebcee11-e1cd-4ff2-bdae-c8e5deb5ba0a"><img src="https://i.gyazo.com/d3907737ca443b9be56e0434ea633f44.png" alt="" width="620" height="515"><figcaption>フィールドコード</figcaption></figure><p name="6983950f-2ed9-4f8c-ba86-82f7d4910222" id="6983950f-2ed9-4f8c-ba86-82f7d4910222">テストで作ったアプリだとここです。<br>
ちなみにこのフィールドコードは好きな値に変更できますので、何の値なのか分かりやすいものに変えるとより良いと思います。</p><p name="1b3e661f-c4e1-4992-85fd-cf3cae16c909" id="1b3e661f-c4e1-4992-85fd-cf3cae16c909">次にフィールド値は実際に登録したい値を設定します。<br>
今回は「テスト」としておきます。</p><p name="73517e89-614b-4993-8f48-6d879864100f" id="73517e89-614b-4993-8f48-6d879864100f">これらを合わせると以下のようなリクエストボディになります。</p><pre name="efe8bffe-2ab3-407f-a134-d16231daf14a" id="efe8bffe-2ab3-407f-a134-d16231daf14a"><code>{

"app": 33,

"record": {

"文字列__1行_": {

"value": "テスト"

          }

    }

}</code></pre><figure name="37d8b69b-524c-4fcc-a933-4e17d7d5d8cf" id="37d8b69b-524c-4fcc-a933-4e17d7d5d8cf"><img src="https://i.gyazo.com/991e1d570f6baf8eb724ffae035bd75a.png" alt="" width="620" height="329"><figcaption></figcaption></figure><h3 name="34b6eef9-79cf-4ba2-8ffe-6b1c2a1812f9" id="34b6eef9-79cf-4ba2-8ffe-6b1c2a1812f9">コンテンツタイプ</h3><p name="5ad557f9-c01c-4338-9964-8b02c97e9b37" id="5ad557f9-c01c-4338-9964-8b02c97e9b37">コンテンツタイプは「application/json」を選択します。<br>
先ほどのレコードの登録（POST）のページにもJSONを使用するためにそうするように書かれています。</p><figure name="984fe4a3-ed60-42b2-ba2d-69387a72d907" id="984fe4a3-ed60-42b2-ba2d-69387a72d907"><img src="https://i.gyazo.com/0327017e3deb155d7ace275df2da8324.png" alt="" width="620" height="160"><figcaption></figcaption></figure><h3 name="8816ecfc-dad8-4eb5-b4c5-d64e90cd36bf" id="8816ecfc-dad8-4eb5-b4c5-d64e90cd36bf">エンコード</h3><p name="7620caed-7ab5-4858-a4b5-301247d57710" id="7620caed-7ab5-4858-a4b5-301247d57710">今回はUnicode(UTF-8)のままで結構です。</p><h3 name="ac1c2653-71ea-49ba-90b7-1d42f14a40f2" id="ac1c2653-71ea-49ba-90b7-1d42f14a40f2">出力値</h3><p name="f054b403-2119-46d7-ac72-f974c26f59fe" id="f054b403-2119-46d7-ac72-f974c26f59fe">変数に抽出したい場合は変数を指定しますが、今回は特に抽出せず「ブラウザにロード」にします。</p><figure name="9393ecc2-d3be-4e5a-88d1-170050e3337d" id="9393ecc2-d3be-4e5a-88d1-170050e3337d"><img src="https://i.gyazo.com/fb26ddbf983d80664df1adcbd7713906.png" alt="" width="620" height="79"><figcaption></figcaption></figure><h3 name="74a08516-72f7-4d40-a154-3a4d4414c9b8" id="74a08516-72f7-4d40-a154-3a4d4414c9b8">オプション</h3><p name="a34daed8-61e1-4d48-ad71-f2681db7c602" id="a34daed8-61e1-4d48-ad71-f2681db7c602">はい、ここは重要です。</p><p name="75e7c327-c128-4656-875b-682bf88c5acd" id="75e7c327-c128-4656-875b-682bf88c5acd">ここの設定でKintoneへの認証をかけます。</p><p name="1ae4940f-47cb-4f8b-939c-f05ae5fc4600" id="1ae4940f-47cb-4f8b-939c-f05ae5fc4600">公式のページとしてはこちらになります。</p><p name="c1d755a4-59b7-4fd1-b795-289235693c8b" id="c1d755a4-59b7-4fd1-b795-289235693c8b">kintone REST APIの共通仕様-ユーザー認証<br>
https://developer.cybozu.io/hc/ja/articles/201941754#step7</p><p name="c8088733-eb67-42ef-95a8-fa1c2e3ad807" id="c8088733-eb67-42ef-95a8-fa1c2e3ad807">まず、いずれにしろ変数で指定する必要があるので何かしらテキスト変数を用意します。<br>
そして「送信する追加ヘッダー」を「変数から」に変更します。</p><figure name="1d2b766c-1051-4575-8cff-2eeee0708a61" id="1d2b766c-1051-4575-8cff-2eeee0708a61"><img src="https://i.gyazo.com/53d3f500fd60afa3497fd02f4a9b49c4.png" alt="" width="620" height="122"><figcaption>送信する追加ヘッダー</figcaption></figure><p name="f386451b-65e5-496d-9170-fffccefb4b66" id="f386451b-65e5-496d-9170-fffccefb4b66">認証方法は2通りありますので、それぞれ見ていきましょう。</p><h3 name="863eb1f3-18ef-431a-b621-c425cb59f868" id="863eb1f3-18ef-431a-b621-c425cb59f868">パスワード認証</h3><p name="d4ba7c52-9b08-45de-8f02-f3edec6e3994" id="d4ba7c52-9b08-45de-8f02-f3edec6e3994">これは分かりやすい認証方法だと思いますが、KintoneのユーザーのIDとパスワードを使って認証をする方式です。<br>
書き込みを行うので書き込み権限のあるユーザーが必要になります。</p><p name="1bb2a72e-2520-4fa4-b95f-747f1d4ad90d" id="1bb2a72e-2520-4fa4-b95f-747f1d4ad90d">ここで必要となる値は定型文となる「X-Cybozu-Authorization:」と「ログイン名:パスワード」になります。<br>
しかし、この2つを単純に組み合わせて入れればいいというわけではなく、ユーザー名とパスワードについてはBASE64エンコードしたものを値に指定する必要があります。</p><p name="bd48cc50-a874-4c7d-b0d6-58833fee880a" id="bd48cc50-a874-4c7d-b0d6-58833fee880a">ということで、変数の割当ステップのコンバータを使用して変換してみましょう。<br>
今回はログイン名とパスワードをあらかじめ変数に入れておいたので、エクスプレッションで結合させ、それをバイナリ変換後にエンコードをかけ、定型文の部分と結合しました。</p><figure name="b69a3aa4-dc77-4db2-80f8-b7c862ee87b6" id="b69a3aa4-dc77-4db2-80f8-b7c862ee87b6"><img src="https://i.gyazo.com/43ef029b8337d31431d555fe70f164d7.png" alt="" width="620" height="116"><figcaption></figcaption></figure><p name="0e8d5cb7-a15f-4ed8-99be-dfbb65a96e3d" id="0e8d5cb7-a15f-4ed8-99be-dfbb65a96e3d">BizRoboでエンコードをする際はバイナリである必要があるので、テキストをバイナリに変換を使って変換してからエンコードを行っています。</p><p name="1a9524f2-237c-4b7e-be4f-1da27343227d" id="1a9524f2-237c-4b7e-be4f-1da27343227d">これを変数に格納してこのように変数を指定することで、パスワード認証用の追加ヘッダーの設定ができます。</p><figure name="b7084526-d1ca-41d9-96a1-a2b62bc6038b" id="b7084526-d1ca-41d9-96a1-a2b62bc6038b"><img src="https://i.gyazo.com/7e6aa654507b45dbaf2163614b711ef8.png" alt="" width="620" height="152"><figcaption></figcaption></figure><p name="988562ab-ed1f-48f2-9950-c0faf47093ba" id="988562ab-ed1f-48f2-9950-c0faf47093ba">これでロボット実行すると、Kintone上にレコード登録されます。</p><h3 name="bf699aa3-c1aa-445d-b045-b90502243a43" id="bf699aa3-c1aa-445d-b045-b90502243a43">トークン認証</h3><p name="d4debafa-cd32-4f44-9dfa-c719d4080eb6" id="d4debafa-cd32-4f44-9dfa-c719d4080eb6">次にトークン認証です。<br>
これはあらかじめKintoneアプリからトークン発行をしておく必要があります。<br>
生成方法は以下に記載されている通りです。</p><p name="903dec90-e569-4b3b-a900-11a9359767d8" id="903dec90-e569-4b3b-a900-11a9359767d8">APIトークンを生成する<br>
https://jp.cybozu.help/k/ja/id/040471.html</p><p name="68d385ef-00ac-4ff8-8c54-2dd2d1e6d9ef" id="68d385ef-00ac-4ff8-8c54-2dd2d1e6d9ef">設定するアクセス権限としては、今回はレコード登録なので、レコード追加権限が必要となります。</p><p name="a6eb114d-b9a2-41e6-9d14-a0d879ecf29b" id="a6eb114d-b9a2-41e6-9d14-a0d879ecf29b">トークンを発行したら、トークンをメモ帳等にコピーしておき、<br>
必ず「保存」をクリックして保存し、</p><figure name="09e2f7b1-ec3a-4dd8-9ae4-a91267daf193" id="09e2f7b1-ec3a-4dd8-9ae4-a91267daf193"><img src="https://i.gyazo.com/20833200b63da4ae054f6f5dcd475b6d.png" alt="" width="454" height="217"><figcaption>トークン保存</figcaption></figure><p name="8f6ceb1b-86ec-41a5-a978-8fb2f763dbbf" id="8f6ceb1b-86ec-41a5-a978-8fb2f763dbbf">その後「アプリを更新」をクリックして更新してください。<br>
</p><figure name="4221fea5-4d49-4a7a-9950-2629b2249691" id="4221fea5-4d49-4a7a-9950-2629b2249691"><img src="https://i.gyazo.com/f66cf45f8f54be000b26e29c77ec926e.png" alt="" width="517" height="112"><figcaption>アプリを更新</figcaption></figure><p name="69f5c0bd-c9fe-4c31-9be1-258baa779540" id="69f5c0bd-c9fe-4c31-9be1-258baa779540">ここがグレーではなく青くなっている場合には、更新できていません。<br>
保存とアプリ更新を忘れるとこの後必ずエラーになりますのでご注意ください。<br>
もし実行時にエラーコード「520」が出たら、これを疑ってみてください。</p><p name="9d5dcc32-f558-4911-a660-1e80d569df78" id="9d5dcc32-f558-4911-a660-1e80d569df78">次にロボットへの設定値ですが、<br>
定型文となる「X-Cybozu-API-Token:」と先ほどの「トークン値」になります。</p><pre name="ff0bf9ef-542b-44e4-9c67-b46bffb8b773" id="ff0bf9ef-542b-44e4-9c67-b46bffb8b773"><code>X-Cybozu-API-Token:xxxxxxxxxxxxxxxx</code></pre><p name="067ef9dd-7bc6-4a3b-9d74-8c3b304d8a4a" id="067ef9dd-7bc6-4a3b-9d74-8c3b304d8a4a">こういう形式です。<br>
これを変数に入れて指定します。</p><p name="76993753-b095-4b45-aa65-87b4cfaea7cd" id="76993753-b095-4b45-aa65-87b4cfaea7cd">変数名は何でもいいですがこんな感じですね。</p><figure name="7e9f88d5-b0b7-4032-af4c-13689b6b7d7d" id="7e9f88d5-b0b7-4032-af4c-13689b6b7d7d"><img src="https://i.gyazo.com/f68be8d5cbba026f6c4b92618483c10f.png" alt="" width="620" height="145"><figcaption></figcaption></figure><p name="4cd311bc-5393-4eeb-9f53-b4b6ee348009" id="4cd311bc-5393-4eeb-9f53-b4b6ee348009">これで実行するとまた同じくレコード登録されます。</p><h2 name="df6a2351-df66-4fce-ad2f-5fec8163759b" id="df6a2351-df66-4fce-ad2f-5fec8163759b">まとめ</h2><p name="4169d7b0-1f48-4c7e-9987-ce6f2ddcb5e8" id="4169d7b0-1f48-4c7e-9987-ce6f2ddcb5e8">今回はリクエストボディをそのままテキスト値で指定しましたが、変数を利用してコンバータ機能でテキストを変数値に置き換えていけば、動的なリクエストが可能です。</p><p name="708dca0f-7dc4-4553-95da-6ce406eb3469" id="708dca0f-7dc4-4553-95da-6ce406eb3469">以前以下の記事で紹介したMCのログデータベースからエラーログを抽出するロボットを組み合わせると、エラーログをKintoneにAPIで登録することもできます。</p><p name="27525bf6-2373-468f-8e66-1fbf2c20a02d" id="27525bf6-2373-468f-8e66-1fbf2c20a02d">(BizRobo)MC上でスケジュール実行したロボットエラー情報をログデータベースから抽出する方法<br>
<a href="https://note.com/yg_1004/n/nb58f1e3b73d7" target="_blank" rel="nofollow noopener">https://note.com/yg_1004/n/nb58f1e3b73d7</a></p><p name="a2a11464-8f46-40bf-8791-99b2f3b4d93d" id="a2a11464-8f46-40bf-8791-99b2f3b4d93d">KintoneとBizRoboに限らず、様々なツール同士をAPIでつなぐことでまだ見ぬ便利な使い方ができます。</p><h2 name="13b4624b-b887-40ce-83e0-4f52ea3db6d5" id="13b4624b-b887-40ce-83e0-4f52ea3db6d5">参考リンクまとめ</h2><h3 name="788c5945-3dd8-44de-ab2c-dec80b221001" id="788c5945-3dd8-44de-ab2c-dec80b221001">Kintone</h3><p name="eab17837-27fb-41ea-87e2-073b9bf22775" id="eab17837-27fb-41ea-87e2-073b9bf22775">はじめての方へ。キントーンとは？<br>
https://kintone.cybozu.co.jp/what_is_kintone/</p><p name="84c11902-cc25-48c5-b7c0-c5851263044b" id="84c11902-cc25-48c5-b7c0-c5851263044b">kintone REST APIの共通仕様-ユーザー認証<br>
https://developer.cybozu.io/hc/ja/articles/201941754#step7</p><p name="2a5294f3-e83c-4e0e-b2f5-2f5f92dd08cd" id="2a5294f3-e83c-4e0e-b2f5-2f5f92dd08cd">レコードの登録（POST）<br>
https://developer.cybozu.io/hc/ja/articles/202166160</p><p name="45a9562e-b11e-49af-bb08-f913e845b25a" id="45a9562e-b11e-49af-bb08-f913e845b25a">フィールドコードとは-設定手順<br>
https://jp.cybozu.help/k/ja/id/040504.html#autocalc_fieldcode_30</p><p name="babe6619-4eab-41e0-9454-16a805e84f34" id="babe6619-4eab-41e0-9454-16a805e84f34">APIトークンを生成する<br>
https://jp.cybozu.help/k/ja/id/040471.html</p><h3 name="95548eae-82d8-4664-b6b7-9e61b5e827c2" id="95548eae-82d8-4664-b6b7-9e61b5e827c2">BizRobo</h3><p name="c269e5ff-85d4-4c84-8b65-93ea4ca372e6" id="c269e5ff-85d4-4c84-8b65-93ea4ca372e6">「REST Web サービス呼出(Call REST Web Service) 」ステップ<br>
https://knowledge.bizrobo.com/hc/ja/articles/360053253091</p><p name="7e65d678-c053-4278-99d9-e2ebbbc0e66c" id="7e65d678-c053-4278-99d9-e2ebbbc0e66c"><a href="https://portal.bizrobo.com/ja/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88/%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BC%9Abizrobo%EF%BC%81campus%EF%BC%81%EF%BC%81" target="_blank" rel="nofollow noopener">開発者向けユーザー会BizRobo! CAMPUS!!</a><br>
※要ログイン</p><p name="c1051034-17bb-44ab-9bf3-310f9b2f207b" id="c1051034-17bb-44ab-9bf3-310f9b2f207b">(BizRobo)MC上でスケジュール実行したロボットエラー情報をログデータベースから抽出する方法<br>
<a href="https://note.com/yg_1004/n/nb58f1e3b73d7" target="_blank" rel="nofollow noopener">https://note.com/yg_1004/n/nb58f1e3b73d7</a></p><h3 name="1350ff6f-004a-4a23-b551-9ceaa2b69131" id="1350ff6f-004a-4a23-b551-9ceaa2b69131">その他</h3><p name="118e720a-9784-4c5b-8d69-946986fd817b" id="118e720a-9784-4c5b-8d69-946986fd817b"><a href="https://wa3.i-3-i.info/index.html" target="_blank" rel="nofollow noopener">「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典</a><br>
<a href="https://wa3.i-3-i.info/word12428.html" target="_blank" rel="nofollow noopener">https://wa3.i-3-i.info/word12428.html</a></p>