公開日:
こんにちは。
システム開発でgusuku Everysiteを使うとどうなる…?みたいなことを考えていたら時間が溶けてしまって大変な、システム開発グループ所属のよなしろです。
弊社はkintoneのカスタマイズをノーコードで行なえるサービスのgusuku Customine・kintoneアプリのデプロイ・バックアップサービスのgusuku Deploitを提供しているサービス提供会社としての一面もありますが、システム開発会社としての一面もあります。
もちろんgusuku Customineなどを活用してシステム開発をするのですが、gusuku Everysiteが武器として追加されもっといろんなことができるんじゃないか…と研究しております。
御社の業務改善やこれをシステム化できたらなぁ…みたいなお悩みごとがございましたら、是非キミノマホロのページを見ていただき、お問い合わせいただければと思います。

必要なものを、必要なだけ。
業務改善の新しいカタチ。
kintoneを活用した業務改善・システム開発サービス
kintoneを活用した業務改善・システム開発サービス
さて、blogの本編ですが、「kintoneが動かない」と言われたときにチェックする項目 シリーズ、最終回の第4弾です。
今回は「外部サービスとの連携」がテーマです。
これまで、ネットワーク(その1)、kintoneの設定(その2)、プラグインやカスタマイズ(その3)と順にチェックしてきましたが、今回はそれらすべての知識がつながってくる内容になります。
過去の記事も是非ご覧いただければと思います。
WebhookやAPI連携、外部システムとの連携など、便利な仕組みを使っているからこそ起きる「外の世界とのつながり」に関するトラブル。この記事では、外部サービスとの連携に不具合が発生したときに、どこをどう確認すればいいかを紹介していきます。
1. 連携先のサービスがトラブっていないか
まずは「相手がちゃんと動いてるか」を疑いましょう。
Webhookで通知を飛ばしても何も起きない、API連携しているシステムにデータが登録されない、といった場合、こちら(kintone)ではなく連携先のサービス側が不調というケースも多々あります。
連携先がWebサービスであれば、サービスの障害情報ページや公式SNSなどで障害発生やメンテナンスの有無を確認しましょう。
また、Webhookなどで送っているリクエストに対して「エラーが返ってきている」場合もあります。
その場合、Webhook先が受け取った情報をうまく処理できていない可能性もあります。
このようなときは、連携先のログや履歴を見られる場合は確認してみるとヒントになります。
例えば「データ形式が違う」とか「認証情報が無効になっている」などのエラーが記録されているかもしれません。
2. 設定がおかしくないか
意外と多いのが、「設定したつもり」が原因のケースです。
WebhookのURLの入力ミス、APIキーの貼り間違い、gusuku CustomineからAWS Lambda関数を呼び出す場合に関数名が違っていた……などなど、ちょっとした設定のズレが原因で動かなくなることがあります。
あとは、第2弾「設定編」と共通する話も多いです。特に、アクセス権や使用できるサービスの設定などは、普段は意識しないけれど、ふとした拍子に「権限がなくて動かない」なんてこともあります…
また、gusuku Customineやプラグインで外部連携をしている場合、プラグインのバージョン違い、本番環境と開発環境での設定差異なども見落としがちなポイントです。
認証まわりも注意ポイントです。APIキーの有効期限切れや、Webhook先で設定していたパスワードが変更されていた、というケースも含め、連携の“入口”に関わる情報が正しいかどうかを見直してみてください。
3. 連携先のサービスの仕様変更を疑う
「昨日までは動いてたのに、今日から急に…」という現象は、連携先の仕様変更が原因かもしれません。
APIを提供しているサービスでは、アップデートによって連係時にサービス提供元へ送信するリクエスト形式が変わったり、必須項目が追加されたりすることがあります。
第3弾で紹介した「JavaScriptカスタマイズが突然動かなくなる」話とも共通しますが、kintone側のコードや設定は何も変えていないのに、外部側が変わったせいで連携が成立しなくなるケースは実際によくあります。
また、以前は公開されていたAPIが廃止ということになっているものの、ドキュメントからは削除されていたけどAPI自体は使えていた……というようなケースもあります。そういったAPIを使って連携していて動いていたものの、ある日突然のアップデートで完全に使えなくなり、連携が止まってしまう、ということも起こり得ます。
こういったケースでは公式ドキュメントや更新履歴を見てもわからないので厄介なケースです。
とはいうものの、まずはじめに公式ドキュメントやリリースノート、最近のアップデート情報を確認して、もし仕様が変わっていないかどうかをチェックしてみましょう。
4. JavaScriptやプラグインの不具合を疑う
ほぼほぼ第3弾の話です。
外部連携を実装しているJavaScriptやプラグインのコードに、実は不備があるというパターンもあります。
第3弾でも触れましたが、Promiseの書き方やreturnの書き忘れなど、ちょっとしたコードの書き方の差で、処理が途中で止まってしまうことがあります。
また、他のプラグインやカスタマイズと組み合わせた結果、思いがけず干渉してしまっているケースもあります。例えば、値を書き換える処理が二重で動いていたり、一覧画面にボタンを追加する処理が重なって表示が崩れてしまったり……。
JavaScriptやプラグインが関わっている場合は、処理を1つずつ無効化して試すことで、原因の切り分けがしやすくなります。
5. ネットワーク経路の問題
「社内では動かないけど、スマホのテザリングだと動いた」なんてことはありませんか?
たとえば、社内のネットワークで特定の外部サービスへのアクセスが制限されているとか、社内のDNSの設定で名前解決がうまくいっていない、といったこともあります。
また、VPN経由でアクセスしている場合、VPNの外と内で名前解決やルーティングに差があるというのもありがちです。
このようなときは、一時的にスマートフォンのテザリングで接続してみる、他のネットワークから試してみるなど、環境を変えて切り分けをしてみてください。
このあたりは第1弾を参照してみてください。
kintoneが動かないって言われた時の原因、ひとつじゃないかも?
外部サービスとの連携に限らず、システムに関するトラブルは、1つの原因だけではなく、複数の要因が重なって起きていることも珍しくありません。
設定が間違っているようには見えない、コードも合ってる、でも動かない……。そんなときは、今回ご紹介したようなさまざまな視点で少しずつ切り分けていくことが大切です。
このシリーズは今回でひと区切りとなりますが、トラブルの原因がどのステップにあったとしても、冷静に見直して、少しずつ確認していけば、きっと解決の糸口が見えてきます。
というわけで、今回は外部サービスとの連携編でした。次に似たトラブルが起きたら、「このあたりかな?」と疑えるようになってもらえたら嬉しいです。
この「「kintoneが動かない」って言われたときにチェックする項目」シリーズはこれで終了となります。
よなしろの次回作にご期待ください!
投稿者プロフィール

- 沖縄で業務しています。オンプレ生まれ・クラウド育ち。