スケジュールタスクで何ができるのか?
スケジュールタスクで実現できる自動化は非常に多岐にわたります。まずは、いくつかの一般的なユースケースを挙げさせていただきます。
ソーシャルメディアの動的監視: 特定のユーザー活動を定期的に追跡し、トレンドトピックを監視 データ取得と分析: ウェブサイトの記事、コメント情報などを定期的にクロール 自動マーケティング: スケジュールされた間隔でソーシャルメディアに自動投稿 個人用自動化: リマインダーとタスク管理のタイミング設定
これまで、これらのスケジュールされた自動化タスクの実装は非常に面倒でした。多くの場合、プログラミング言語(Pythonなど)の習得、サーバーやクラウドプラットフォームの設定、あるいは様々な状況に対応するための複雑なスクリプトの記述が必要でした。これは、非技術者や時間に限りのある開発者にとって大きな障壁となりがちでした。
しかし今、Apidogの「スケジュールタスク」機能を使えば、これらの自動化シナリオは基本的に簡単に処理できます。
Apidogでは、クローラーや監視などの自動化されたタイミングタスクの実装は、大まかに以下のステップに分けられます。
- APIの取得
- 返却データの分析
- テストシナリオの編成
- スケジュールタスクの設定
これらのステップに基づいて、Apidogでの操作方法を以下に説明します。あなたのニーズが何であれ、以下の内容はあなたにインスピレーションを与えることができるでしょう。
APIの取得
特定のプラットフォームのソーシャルメディアの動向を監視したい場合、または特定のプラットフォームからデータをクロールしたい場合、最初のステップは、この操作を実装するAPIを取得することです。そこで疑問が生じます。これらのAPIはどこで見つけられるのでしょうか?
公式の「オープンプラットフォーム」にアクセスして、関連する公開インターフェースがあるかどうかを確認できます。これが最も正式な方法です。一般的に、フロントエンドで表示できるページには、対応するAPIが提供されています。
例えば、GitHub上の特定のプロジェクトのスター数を監視したいと仮定すると、この時点でGitHubのオープンプラットフォームにアクセスして、関連するAPIが提供されているかどうかを確認できます。もしあれば、それを直接コピーするだけです。

公開APIをリクエストする際にはトークンの携帯が必要であり、通常は開発者のバックグラウンドで生成できます。

公式プラットフォームでAPIを探す以外にも、ブラウザでパケットをキャプチャしたり、GitHubでオープンソースプロジェクトを探したりすることもできます。具体的な操作方法は、この記事の最後にある拡張セクションで確認できます。
返却データの分析
関連するAPIの取得方法が分かったので、次のステップは、返却されたデータを分析し、そこにどのような有用な情報が含まれているかを確認することです。一般的に、これらのAPIはJSON形式でデータを返しますので、各フィールドが何を意味するのかを注意深く確認する必要があります。
例えば、以下の公開APIにアクセスすると、GitHub上の特定のオープンソースプロジェクトのレポジトリ情報を取得できます。
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/{owner}/{repo}
ここで、{owner}はリポジトリ所有者のユーザー名または組織名、{repo}はリポジトリの名前です。この情報を見つけるには、GitHubリポジトリのURLを見るだけです。
- 表示したいGitHubプロジェクトページを開く
- ブラウザのアドレスバーにあるURLを見ると、
https://github.com/{owner}/{repo}の形式になっています。 - URLの最初のスラッシュの後の部分が
{owner}、2番目のスラッシュの後の部分が{repo}です。

Apidogでは、上記のcURLコマンドの内容を直接コピーして新しいAPIリクエストを作成するか、リクエストヘッダーにトークンを追加しながらリクエストメソッドとURLを手動で設定できます。

リクエストを送信すると、次のようなJSONレスポンスが得られます。
{
"id": 468576060,
"name": "openai-cookbook",
"full_name": "openai/openai-cookbook",
"stargazers_count": 59366,
...
}
生のJSONデータを取得した後、次のステップはデータ処理です。Apidogでは、JSONPath式を使用するか、シンプルなスクリプトを記述することでこれを実現できます。
例えば、JSONPathを使用して特定のフィールドを抽出するには、「後処理」で「変数を抽出」操作を追加し、対応する式を記入します。式の書き方に慣れていない場合は、「JSONPath式」入力ボックスのアイコンをクリックして、JSONPath抽出ツールをアシスタントとして使用できます。

抽出されたデータは一時的に環境変数に保存され、後続のステップでサーバーに送信したり、データベースに保存したりできます。
一般的なJSON形式に加えて、HTMLドキュメント全体を直接返すタイプもあります。これはサーバーサイドレンダリングのシナリオで非常によく見られます。これには、処理のためにスクリプトを使用する必要があります。
Apidogでは、「後処理」で新しい「カスタムスクリプト」を作成し、fox.liveRequireメソッドを使用してhtmlparser2ライブラリを参照し、HTML形式のデータを処理できます。
例えば、HTMLからすべての<article>タグとその内部コンテンツを抽出し、テキスト形式に変換したい場合、次のようなスクリプトを記述できます。
fox.liveRequire("htmlparser2", (htmlparser2) => {
console.log(htmlparser2);
// HTML string (generally read from interface return data)
const htmlString = `
<html>
<body>
<article>
<h1>Title</h1>
<p>This is a paragraph.</p>
<p>Another piece of text.</p>
</article>
<footer>Footer content</footer>
</body>
</html>
`;
// Parse document
const document = htmlparser2.parseDocument(htmlString);
// Use DomUtils to find <article> tags
const article = htmlparser2.DomUtils.findOne(elem => elem.name === "article", document.children);
// Convert content in <article> to complete HTML fragment
if (article) {
const articleHTML = htmlparser2.DomUtils.getOuterHTML(article);
console.log(articleHTML);
} else {
console.log("No <article> tag found.");
}
})

スクリプトを介したHTML形式コンテンツの処理については、ここではあまり深く掘り下げません。これは「DOM操作」とシンプルに理解できます。具体的な詳細についてはAIに尋ねることができます。
テストシナリオの編成
APIの準備が整い、データが分析されたら、次のステップは自動テストでテストシナリオを編成することです。
Apidogでは、自動テストでテストシナリオを作成し、準備したAPIリクエストをそれにインポートできます。

処理されたデータをデータベースに挿入する必要がある場合は、「後処理」で新しい「データベース操作」を作成し、SQLコマンドを通じて処理されたデータをデータベースに挿入できます。SQLコマンドは環境変数からの値の読み取りをサポートしています。例えば:

INSERT INTO monitoring_data (project_name, star_count, updated_time)
VALUES ('{{project_name}}', {{star_count}}, NOW())
さらに、APIを通じて処理されたデータを保存することもできます。つまり、独自のAPIを記述してデータをサーバーに保存したり、Webhookを通じてデータをサードパーティプラットフォームに送信したりできます。
例えば、処理されたデータをFeishu(Lark)に送信したい場合、テストシナリオに新しいテストステップを追加し、Feishuが提供するWebhook APIを使用してメッセージを送信できます。このプロセス中に、「動的値」を通じて以前のステップの実行結果を読み取ることができ、データ処理がより便利になります。

データのグループを反復処理したり、実行を続行する前に返されたフィールドが特定の条件を満たすようにしたりする必要がある場合は、テストステップに「フロー制御条件」を追加することもできます。

テストシナリオの編成が完了したら、テストを実行して効果を確認できます。テストシナリオ全体にエラーがないかを確認し、データが正常に送信されていることを確認します。編成されたテストシナリオに問題がなければ、次のステップであるスケジュールタスクの設定に進むことができます!
スケジュールタスクの設定
Apidogでは、スケジュールタスクの設定は非常に簡単です。ただし、スケジュールタスクを使用するための前提条件として、サーバーにRunnerをデプロイしている必要があります。Runnerのインストールと設定プロセスの詳細ガイドを参照してください。
Runnerをすでにデプロイしていると仮定すると、以前に編成したテストシナリオにスケジュールタスクを追加して、スケジュール通りに実行させ、自動監視を実現できます。
Apidogの自動テストで、「スケジュールタスク」モジュールを見つけ、新しいスケジュールタスクを作成します。設定インターフェースには、以下のオプションが表示されます。
- タスク名: 「GitHubスター数日次監視」のような、タスクを説明する名前を付けます。
- テストシナリオ: スケジュール監視やクローラーテストシナリオなど、定期的に実行する必要があるテストシナリオを選択します。
- 実行サイクルの設定: 例えば、毎日午後6時に1回実行。
- 実行環境: デプロイ済みのRunnerサービスを選択します。
- 通知設定: タスク完了後の通知方法を指定します。メール、DingTalkなどがあります。

設定して保存すると、このスケジュールタスク下のテストシナリオは設定された実行サイクルに従って定期的に実行され、自動化されたスケジュール監視の目標が達成されます。

拡張
上記の「APIの取得」セクションでは、公式のオープンプラットフォームでAPIを見つける以外に、ブラウザで直接パケットをキャプチャすることもできます。
例を挙げます。
Weiboのトレンドトピックを監視したいと仮定しましょう。ブラウザでWeiboのトレンドページを開き、F12またはCtrl + Shift + Iを押して開発者ツールを開き、「Network」タブに切り替えます。ページを更新すると、たくさんのリクエストが表示されます。トレンドデータを取得するリクエストを見つけ、右クリックしてcURLとしてコピーします。次に、Apidogを開き、新しいインターフェースを作成し、コピーしたcURLを入力ボックスに貼り付けます。Apidogが自動的に解析してくれます。とても便利です!

パケットキャプチャ以外にも、一部のサードパーティ開発者が特定のサービスAPIをすでにリバースエンジニアリングしている場合があります。GitHubで検索し、必要に応じて直接使用できます。
まとめ
この記事の内容はこれで終わりです。Apidogのスケジュールタスク機能を使って、興味深い自動操作を実装するためのインスピレーションになれば幸いです。何か素晴らしいアイデアや実践例があれば、ぜひApidogユーザーコミュニティで共有してください。個人的な使用のヒントでも、難しい問題を解決するためのアイデアでも、すべて歓迎します!
