WordPressは、テーマとプラグインの大規模なエコシステムを備えた強力なコンテンツ管理システム(CMS)。サイトの機能を拡張する方法はほぼ無限にあります。とはいえ、この「ほぼ」というのが肝で、制限が全くないわけではありません。そんなときに活用したいのが、サードパーティAPIです。

この記事では、WordPressでサードパーティAPIを活用するメリットを探ります。利用可能なAPIの種類、適切なAPIの選び方などをご紹介し、KinstaでホストするWordPressサイトでAPIを活用する方法を見ていきます。

サードパーティAPIとは

アプリケーションプログラミングインターフェース(API)は、異なるアプリが通信し、相互作用するための定義とプロトコルです。外部サービスから特定のデータにアクセスするための仲介役となります。

利用可能なデータにアクセスできれば、それを自分のアプリケーションに取り込むことができます。これにはcURL、JavaScriptPythonPHPなどの言語を使用するのが一般的です。

TinyPNGのTinify APIから取得したコード例
TinyPNGのTinify APIから取得したコード例

WordPressは、REST APIなどのAPIを提供しており、フックするためにコアコードにエンドポイントを公開しています。これにより、プラグインをインストールする以上の範囲と柔軟性が実現されます。

Kinstaでも、MyKinstaから離れて別のプラットフォームで作業するためのREST APIをサポートしています。サーバーログの取得サイトのセットアップなどに有用です。

そのプラットフォームのAPIを使用してエンドポイントにアクセスする場合は、「ファーストパーティ」API、あるサービスのAPIを別のサービス上で使用する場合には、「サードパーティ」APIと定義されます。例えば、WordPressサイトのコード内でOpenWeatherMapのWeather APIエンドポイントにアクセスすることができます。

OpenWeather Weather API
OpenWeather Weather API

APIをうまく活用することで、WordPress、ホスティング(Kinsta)、そしてサイトの可能性を広げることができます。

WordPressでサードパーティAPIを使用するメリット

WordPressでプラグインを使用することにももちろん利点がありますが、サードパーティAPIをサイトに統合することには、より多くの利点があります。最大のメリットは、ほぼすべての機能をサイトにハードコーディングできる点でしょう。

ほとんどの場合、APIでWordPressやプラグインではもたらすことのできないパワーと柔軟性を実現することができます。

他にも、以下のような利点があります。

  • 開発にかかる時間を削減─機能をゼロから開発する必要がなく効率的に。作業時間を削減し、他のプロジェクトに時間を充てることができるように。
  • ユーザーエクスペリエンス(UX)のパーソナライズ─ユーザーが望む機能を確実に実現することができる。
  • プロジェクトの効率化─プロセスが自動化、合理化される。例えば、メールマーケティングAPIを統合すれば、ユーザーデータを関連プラットフォームと同期して、自動化することができる。
  • メンテナンス不要─サードパーティAPIは、その開発者によって保守管理と更新が行われるため、余分なリソースを投入することなく、最新の機能や改善点を利用できる。

優れた統合性、カスタマイズ性、パフォーマンスを求めるなら、サードパーティAPIを利用する価値あり。また、要件を満たすWordPressプラグインが見つからない場合には、APIが唯一の選択肢になります。

なお、サードパーティのAPIを使ってサイトに機能を統合する方法は多数ありますが、設定の調整やユーザーによる機能のパーソナライズが必要になる場合は、プラグインを選ぶ方が賢明です。

サードパーティAPIの種類

APIの需要は非常に高く、Google Cloudのレポートによると、ウェブアプリケーションの約60%で使用されています。また、同レポートでは大半の企業がAPIがより良い製品の開発に貢献すると考えていることも指摘されています。

サードパーティAPIの客観的な価値を判断するのは難しいかもしれませんが、多くの主観的な用途が考えられます。サードパーティAPIは、以下のようにあらゆる要件や機能性に対応しています。

  • ソーシャルメディアAPIFacebookTwitterTikTokInstagramなど、ほぼすべてのSNSプラットフォームがAPIを提供。ソーシャルシェア、ログインオプション、埋め込みなどの機能を統合できる。
  • 支払いゲートウェイAPI:様々な決済代行サービスがAPIを提供。StripeやPayPalなどのサービスをWordPressサイトに統合できる。
  • 地図APIGoogle マップMapboxなどから、インタラクティブな地図を埋め込んだり、ジオロケーションを適用したり、ルーティングをサイトに追加したりできる。
  • 分析API:これには多くの選択肢があり、たとえば人気の高いGoogleのAPIを使用すると、LighthouseGoogle アナリティクスのデータをWordPressに取り込むことができる。
  • メールマーケティングAPIMailchimpSendGridなどのサービスもAPIでWordPressと統合可能。メールキャンペーンの自動化、購読者の管理、パフォーマンスの追跡などを行うことができる。
  • 天気API:OpenWeatherMapやWeatherbitなどのAPIを使用すると、リアルタイムの気象データを取得できる。ジオロケーションなどの要素を追加することも可能。

他にも、さまざまな目的に対応するAPIが多数存在しますが、逆にいえば、数あるAPIの中から、適切なものを見つけて統合することが鍵となります。サードパーティのAPIをWordPressに統合する方法をご紹介する前に、選び方を押さえておきましょう。

要件に適したサードパーティAPIの選び方

WordPressプラグインを選ぶ際にも同じことが言えますが、適切なサードパーティAPIを選択する際にも、考慮すべき点がいくつかあります。APIの選択がプロジェクトの方向性を決定することになるため、慎重に見極めましょう。

まず第一に、サイトに必要な機能を洗い出すこと。これは当たり前ともいえますが、適切な機能と特徴を実現してくれるAPIを探すことがとにかく大切になります。

他にも、以下のような点に気をつけましょう。

  • 信頼性と評判─ユーザーレビューや評価、実績を確認すること。これらを網羅することで信頼できるサービスを提供している評判があるかどうかがわかる。
  • ドキュメントとサポート ─ドキュメントの質は、エンドポイントへのアクセス時に重要。利用できるサポートも同様で、開発作業を高速化し、トラブルシューティングの手間を削減することができる。
  • 価格─中には有料のAPIもあり、一部制限付きで無料プランを提供しているものや、有料プランのみを展開するものも。予算やAPIコスト、想定する使い方やアクセス方法を確認することも重要。
  • セキュリティとプライバシー─ユーザーデータの保護も非常に重要な指標になる。APIが採用するセキュリティ機能はもちろん、業界のデータ保護基準に準拠しているかどうかも確認するのが賢明(関連するデータプライバシー規制に準拠しているとなおよし)。

APIは、基本的には長期的なソリューションになるため、サイトの規模を問わず有用でなければなりません。この点について、以下もう少し掘り下げてみます。

スケーラビリティ

APIは、サイトの成長に伴うトラフィックとリソースの消費量の増加に対応できるものでなければなりません。スケーラビリティは、肝となる考慮事項です。

とはいえ、サイトのトラフィックに柔軟に対応できるAPIを見つけるのは簡単ではありません。APIサービスの提供内容の説明を確認して、推測する必要があるかもしれません。

例えば、ステートレスなAPIはよりシンプルなサーバー設計で、リソースの処理能力には柔軟性があります。水平スケーリングでサーバーネットワークにさらにノードとマシンを追加することも。垂直スケーリングと比較して、必要なだけのリソース処理能力を得ることができます。また、非同期処理は、サーバーが一度に複数のリクエストを処理することを可能にするため、より効率的です。

スケーリングなしのセットアップ(上)と汎用的な水平スケーリングのセットアップ(下)の比較(画像出典: Mohan)
スケーリングなしのセットアップ(上)と汎用的な水平スケーリングのセットアップ(下)の比較(画像出典: Nithin Mohan

APIのレートがリクエストの許容量を制限しているかどうかもチェックしましょう。これにより、高負荷の下でも一貫性かつ信頼性を高く保ち、安定したサービスを長期的に提供することができます。

スケーラビリティに限らず、先に挙げたすべての要素を慎重に評価してください。要件を満たす適切なサードパーティAPIを選んで統合することで、WordPressサイトの機能を効果的に拡張することができます。

サードパーティAPIをWordPressと統合するヒント

APIをサイトに統合するのは、基本的には簡単ですが、スムーズに統合するためには体系的なアプローチが求められます。

まずは、マニュアルに目を通しましょう。APIのドキュメントには、利用可能なエンドポイント、パラメータ、認証方法など、機能の詳細が明確に記載されているはずです。

Kinsta APIのドキュメント
Kinsta APIのドキュメント

APIとWordPressの統合には、他にも以下のようなヒントやベストプラクティスがあります。

  • 認証の処理─ほとんどのAPIではサービスにアクセスするための認証情報が必要。認証なしでは、エンドポイントにアクセスできない。
  • APIコールの実装─WordPressには、組み込みのHTTP APIなど、APIコールを行う方法がいくつか用意されているため、時間をとって、要件に適した方法を選択すること(ここでもAPIのドキュメントが役立つ)。
  • APIレスポンスの解析─APIは、JSONやXMLなどさまざまな形式でレスポンスを返すため、データを抽出して使用するには、コード内でAPIレスポンスを解析して処理する必要がある。
  • エラー処理─適切なエラー処理メカニズムを使用することで、APIエラーを効率的に処理できる。また、サイト訪問者に説明的なエラーメッセージを表示することも可能。
  • テストとデバッグ─どんなアプリや実装にも、API統合をテストして動作を確認することは必要不可欠。Postmanやブラウザの開発者ツールなどでAPIコールをテストし、問題があればデバッグすること。

最後に、APIの制限も把握しておくことが重要です。料金は利用許容量に関係することが多いため、できれば上限を超えないようにするのが理想的です。後ほど、これに役立つKinstaのツールの使用方法をご紹介します。

サードパーティAPIを統合するためのWordPressとKinstaでの準備

サードパーティAPIをWordPressと統合する前に、プラットフォームとKinsta両方の準備が整っていることを確認しましょう。CMSとホスティングの両方で設定が必要になる可能性があります(特に新規サイトの場合)。

この「準備」は比較的シンプルです。例えば、WordPressのコアを最新の状態に保つこと。また、必要なプラグインのインストールも優先しましょう。一部APIは、動作に特定のプラグインを要したり、プラグインをサイトへの「橋渡し」として使用したりすることがあります。

セキュリティへの配慮も挙げられます。SSL証明書をインストールし、サイトにHTTPSリダイレクトを設定しましょう。

Let's Encrypt証明書のSSL情報
Let’s Encrypt証明書のSSL情報

大きな変更を行う前には、サイトのバックアップを作成することを習慣づけましょう。また、ローカルの開発環境で統合するかどうかも考慮したいところ。プラグインによってはローカルのセットアップでは動作しないことがあります。

また、サードパーティAPIを使用する際のホスティングの制限も確認してください。レート制限やブロックされたポートなどが一例です。このような制限を把握しておくことで、必要な機能を適切に構築することができます。

例えば、Kinstaはメールホスティングを提供していないため、標準的なSMTPポートはすべてブロックされています。また、リクエストは1分あたり60件までに制限されます。以上を踏まえ、WordPressとKinstaの準備が整ったら、サードパーティAPIの統合に移りましょう。

KinstaでホストするWordPressサイトとサードパーティAPIを統合する方法(2通り)

サードパーティAPIの統合は、ハードコーディングするのが一般的なアプローチですが、他にも方法があります。

KinstaでホストするWordPressサイトにサードパーティAPIを統合するための方法を2種類ご紹介します。

1. コーディングでHTTPリクエストを行う

APIコールを配置して、レスポンスを処理する方法として、サイトに直接コーディングすることができます。これは、使用するプログラミング言語とWordPressの構造に精通しているのが条件になります。

WordPressサイトでは、REST API内のルートとエンドポイントを使用します。これにより安全かつ、優れた統合性を実現できます。

このアプローチが適した選択肢として、TikTokのAPIを例に手順を見ていきます。

TikTok APIとWordPressサイトを統合する

まずは、TikTokで開発用アカウントを持つ必要があります。アカウント登録は簡単で、登録後利用可能なAPIの一覧が表示されます。

TikTokの開発者向けマイクロサイトと利用可能なAPI
TikTokの開発者向けマイクロサイトと利用可能なAPI

統合したいAPIを選び、そのドキュメントに目を通します。今回の例では、Display APIを統合してみます。このAPIによって、プロフィール情報や関連動画をサイトに表示することができるようになります。

TikTokのDisplay API
TikTokのDisplay API

また、TikTok Login Kitも必要になります。これでデスクトップアプリをSNSプラットフォームで認証します。これには登録と承認が必要です。

Login Kitで表示したい特定のプロフィールのアクセストークンを取得することができます。

curl --location --request POST 'https://open.tiktokapis.com/v2/oauth/token/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cache-Control: no-cache' \
--data-urlencode 'client_key=CLIENT_KEY' \
--data-urlencode 'client_secret=CLIENT_SECRET' \
--data-urlencode 'code=CODE' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=REDIRECT_URI'

このアクセストークンを使って、/v2/user/info/のエンドポイントでGETを呼び出します。これで、特定のユーザー関する基本情報が返されます。

curl -L -X GET 'https://open.tiktokapis.com/v2/user/info/?fields=open_id,union_id,avatar_url' \
-H 'Authorization: Bearer act.example12345Example12345Example'

これはAPIから、関連するすべての情報をJSON形式で含む専用のレスポンスが返されます。

{
   "data":{
      "user":{
         "avatar_url":"https://p19-sign.tiktokcdn-us.com/tos-avt-0068-tx/b17f0e4b3a4f4a50993cf72cda8b88b8~c5_168x168.jpeg",
         "open_id":"723f24d7-e717-40f8-a2b6-cb8464cd23b4",
         "union_id":"c9c60f44-a68e-4f5d-84dd-ce22faeb0ba1"
      }
   },
   "error":{
      "code":"ok",
      "message":"",
      "log_id":"20220829194722CBE87ED59D524E727021"
   }
}

このレスポンスを解析して必要なデータを抽出し、フロントエンドに表示します。実装できれば、テスト、デバッグ、エラー処理をコードに組み込むことができます。

2. WordPressプラグインを使用する(ローコード開発)

WordPressには、高速かつ効率的にサードパーティAPIに接続するためのプラグインがあります。この方法であれば、通常開発者のような高度な専門知識もほとんど必要なく、コーディングなしでAPIに接続することができます。

Get Use APIsのようなプラグインがこれに当たります。おすすめはWPGetAPIで、無料版にも十分な機能が組み込まれています。

Header image for the WPGetAPI plugin's webpage, emphasizing the plugin's capability to facilitate connections to unlimited APIs. The design also highlights the plugin’s API integration features.
WPGetAPIプラグインのヘッダー画像(WordPress.orgより)。

このプラグインを使ってAPIに接続する方法をご紹介します。他のプラグインでも基本的には同じような手順になるはずです。まずはプラグインのインストールと有効化した後、API情報を追加することから始めましょう。

WPGetAPIを使用してサードパーティAPIに接続する

この例では、ShortPixelの画像最適化APIを使用します。「WPGetAPI」>「Setup」に移動すると、以下のような空白のフィールドが多数表示されます。

WPGetAPIのメイン画面
WPGetAPIのメイン画面

最初に、「API Name」「Unique ID」「Base URL」を指定します。

ShortPixelのAPI情報を設定
ShortPixelのAPI情報を設定

これらのフィールドを埋めて「Save」をクリックすると、エンドポイントを指定するための新たなタブが表示されます。最初の4つのフィールド─「Unique ID」と「Endpoint」「Method」(リクエストメソッド)の4つは入力必須項目です。

ShortPixelのAPIへのPOSTコールを設定
ShortPixelのAPIへのPOSTコールを設定

Request Method」ドロップダウンメニューでは、主にAPIからデータを取得するためのGET 、APIにデータを送信するためのPOSTの2つを使用することになります。

ShortPixelは画像を送信することで動作するため、POSTメソッドを使用します。ほとんどのAPIリクエストにはGETメソッドを使用するため、データを受信するだけでなく、送信することもできます。

メインの4つの項目の下には、接続タイムアウト(「Timeout」)ととキャッシュを設定するためのフィールド(「Cache Time」)があります。そこから、認証方法に応じて、「Query String」「Header」「Body」のいずれかのフィールドに認証情報を入力します。ShortPixelは、URL文字列内にAPIキーを使用するため、「Query String」に入力します。

WPGetAPIの「Query String」フィールドにアクセスキー情報を追加
WPGetAPIの「Query String」フィールドにアクセスキー情報を追加

再度変更を保存し、画面上部の「Test Endpoints」ボタンをクリックすると、接続がテストされ、接続ステータスと一緒にレポートが返されます。

WPGetAPI 内のエンドポイントをテスト
WPGetAPI 内のエンドポイントをテスト

最後のステップとして、画面上部のショートコードかテンプレートタグをコピーします。

WPGetAPIでAPI情報を表示する方法を選択
WPGetAPIでAPI情報を表示する方法を選択

これらをコードまたはページの関連箇所に貼り付けます。

Kinsta APMでサードパーティAPIのパフォーマンスを評価する

サードパーティAPIをWordPressサイトに統合したら、そのパフォーマンスを評価することも重要です。APIがサイトに悪影響を与えるようでは、身も蓋もありません。これには、KinstaのAPMツールが便利です。

MyKinstaのAPM画面
MyKinstaのAPM画面

Kinstaのお客様は、MyKinstaでサイトの効率を評価するのに役立つ便利なチャートと指標を表示して、サイトの客観的なパフォーマンスを分析することができます。

Kinsta APMによるサイトのトランザクション時間
Kinsta APMによるサイトのトランザクション時間

さまざまなレポートを確認することができますが、トランザクション時間の監視が特に重要です。これにより、サイトのどの部分が最もリソースを消費しているかを把握できます。

また、外部からのHTTPリクエストやプロセスの影響も気になるところ。APIがリソースを大量に消費している場合は、パフォーマンスを改善するために、APIの改良を行いましょう。MyKinstaでこのような指標を確認することで、サイトの改善すべき点を効率的に特定できます。

まとめ

KinstaでホストするWordPressサイトにサードパーティAPIを統合することで、サイトの機能を拡張する方法があります。APIを活用することで、開発にかかる時間を削減し、UXを改善して、業務効率化を図ることができます。さらに、WordPressにはサードパーティAPIをフックする方法も複数用意されています。

WordPressのREST APIを使用することもできれば、プラグインを使用することも可能です。WPGetAPIは特におすすめのプラグインで、ユーザーフレンドリーなUIを搭載した「ローコード」なアプローチを採用しています。KinstaのAPMツールと組み合わせれば、「ファーストパーティ」のソリューションを使って、サイトのパフォーマンスを監視する画期的な方法を確立できます。

WordPressサイトへのサードパーティAPI統合に関してご意見がありましたら、以下のコメント欄でお聞かせください。

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).