各種クラウド連携サービス(WebAPI)の登録方法

(1/1)
これから紹介するプログラムで利用するクラウド連携サービス(WebAPI)は基本的に無料であるが、事前にアカウント登録が必要なものがある。ここでは、それらの登録方手順についてまとめて説明する。

目次

.pahooEnv ファイルについて

後述する各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを .pahooEnv ファイルに記入し一元管理することで、当サイトで紹介するプログラムから参照できるようになる。
なお、これまで通り、「PHPクラスの紹介」で紹介している各クラスファイルのプロパティに直接記述することでも参照可能だが、セキュリティ強化を目的として、.pahooEnv ファイルに分離するようにした。

.pahooEnv ファイルのフォーマットは以下の通り。後述するとおり、環境変数 $_ENV に代入するので、変数名は既存環境変数と被らないものにする。
# (コメント)
(変数名1) = (値1)
(変数名2) = (値2)
(変数名3) = (値3)


.pahooEnv ファイルは、include_path が通ったディレクトリで、秘匿性を守るために外部から参照されないディレクトリ配置してほしい。

.pahooEnv ファイル、は "pahooInputData.php" にある pahooLoadEnv 関数によって、環境変数 $_ENV に読み込まれる。

pahooInputData.php

  23: /**
  24:  * .env ファイルからデータを読み込む
  25:  * .env ファイルは include_path が通っているディレクトリに配置すること
  26:  * @param   string $fname 読み込む.envファイル名(省略時:.pahooEnv)
  27:  * @return  bool TRUE:.envファイルから読み込んだ/FALSE:読み込まなかった
  28: */
  29: function pahooLoadEnv($fname = '.pahooEnv') {
  30:     // include_path に .env がある想定
  31:     $paths = explode(PATH_SEPARATOR, get_include_path());
  32:     $envFile = NULL;
  33: 
  34:     // include_path のどこかにある .env を探す
  35:     foreach ($paths as $path) {
  36:         $candidate = rtrim($path, DIRECTORY_SEPARATOR. DIRECTORY_SEPARATOR . $fname;
  37:         if (file_exists($candidate)) {
  38:             $envFile = $candidate;
  39:             break;
  40:         }
  41:     }
  42: 
  43:     // 環境変数 $_ENV[] にデータを読み込む
  44:     if ($envFile) {
  45:         foreach (file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINESas $line) {
  46:             // コメント行スキップ
  47:             if (str_starts_with(trim($line), '#')) {
  48:                 continue;
  49:             }
  50:             // KEY=VALUE の形式をパース
  51:             [$name, $value] = array_map('trim', explode('=', $line, 2));
  52:             // すでに $_ENV[$name] があったらスキップ
  53:             if (! isset($_ENV[$name])) {
  54:                 $_ENV[$name] = $value;
  55:             }
  56:         }
  57:     } else {
  58:         return FALSE;
  59:     }
  60: 
  61:     return TRUE;
  62: }

読み込むファイル名は引数で指定できるが、デフォルト引数を .pahooEnv にした。
まず、 get_include_path  関数を使い、include_path に定義されているディレクトリを配列 $paths に格納する。
次に for文を回し、目的のファイルのフルパス $candidate があるかどうか、 file_exists  関数を使って探す。ヒットしたらループから脱出する。

見つかったファイルをオープンしたら、for文を回し、コメント行をスキップしつつ、KEY=VALUE の形式をパースし、環境変数 $_ENV に格納していく。
すでに $_ENV[$name] があったらスキップするようにしたので、取り込んだ環境変数が上書きされることはない。逆に言うと、OSの環境変数に .pahooEnv を書いておくことで、.pahooEnv ファイルを用意しなくても同じ結果が得られる。

Google Cloud Platform

Google Cloud Platform
Google Cloud Platform は、Googleマップ描画や、住所から緯度・経度を求めるときに利用する。ここでは、2019年(平成31年)3月16日時点の情報を記す。

まず https://cloud.google.com/ にアクセスし、「無料トライアル」を選択する。
すると、Googleアカウントでログインを求められる。ふだん利用しているアカウントでログインするか、サービス公開用のアカウントを作っておくといいだろう。Googleアカウントhttps://myaccount.google.com/ から作成する。
Google Cloud Platform
続いて、クレジットカード情報の入力を求められる。
Google Cloud Platform は利用量によって課金される。現在、Googleマップ関連サービスは毎月200ドルまでは無料だが、それ以上の利用量があると課金対象となり、登録したクレジットカードに請求される。
Google Cloud Platform
あらかじめ予算枠を登録しておこう。
無料枠は、JavaScriptによる動的マップの読み込みが28,500回までに相当する。サイトのアクセス量をみて、Google Cloud Platform を利用するかどうか検討しよう。
もし、無料枠を超えるようだったり、Googleにクレジットカードを登録するのを控えたいということであれば、後述の Yahoo!デベロッパーネットワークの地図を利用するという方法もある。こちらも無料枠が決まっているが、Googleに比べて制約が緩い。
これから紹介する地図関係のプログラムは、どちらのサービスも利用できるようにしている。
Google Cloud Platform
次に、プロジェクトを作成する。1つのGoogleアカウントで複数のプロジェクトを作成できる。Webサービスに応じてプロジェクトを分けておくといいだろう。

プロジェクトを作成したら、そのプロジェクトにぶら下がる認証情報を作成し、APIキーを取得する。この APIキーが、これから紹介するPHPプログラムで必要となる。
Google Cloud Platform
APIキー の右側の鉛筆アイコンをクリックし、かならず、アプリケーションの制限を設定しておこう。これを設定しないでおくと、不特定多数によって APIキー を利用され、あっという間に無料枠を超えてしまうからだ
アプリケーションの制限は、Webサービスとして提供するのであれば、URLをHTTPリファラーとして制限しておくか、サーバのIPアドレスで制限しておくといいだろう。

ただし、1つの APIキー について制限方式は1つしか選べない
一部のAPIサービスはIPアドレス制限にしか対応していないため、これから紹介するプログラムを利用するには、最低2つの APIキー を用意してほしい。1つはHTTPリファラー制限、1つはIPアドレス制限として使用する。.pahooEnvPAHOO_GOOGLE_API_KEY_1PAHOO_GOOGLE_API_KEY_2 に設定する。
Google Cloud Platform
GooglrMap Platform から「マップの管理」を選択し、マップIDを作成する。ここで作成したマップIPは、2023年(令和5年)に、それまでのマーカー(Markerクラス)に替わって登場した高度なマーカー(AdvancedMarkerElement)を利用するために必要になる。2024年(令和6年)2月以降、それまでのマーカーは非推奨となった。.pahooEnvPAHOO_GOOGLE_MAP_ID に設定する。

Gemini

Google AI Studio
Gemini は、2023年(令和5年)12月に Googleが発表した生成AIモデルだ。ここでは、2024年(令和6年)12月30日時点の情報を記す。

まず Google AI Studio にアクセスし、「APIキーを作成」をクリックする。
Google AI Studio
Google Cloud Platformで作成したプロジェクトか、あらたに Gemini API を選択し、APIキー が表示される。この APIキー が、これから紹介するPHPプログラムで必要となる。
現在、Geminiは無料で利用できるが、いくつかの制限がある。テキスト生成、翻訳、要約などを行うには無料モードで十分だが、画像生成や音声認識を行うには有料モードを検討した方がいいだろう。

Yahoo!JAPAN デベロッパーネットワーク

Yahoo!JAPAN デベロッパーネットワーク
Yahoo!JAPAN デベロッパーネットワーク は、YOLPマップ描画や、住所から緯度・経度を求めたり、各種日本語処理を行うときに利用する。ここでは、2019年(平成31年)3月16日時点の情報を記す。

まず https://e.developer.yahoo.co.jp/dashboard/ にアクセスし、Yahoo! JAPAN ID でログインする。ふだん利用しているアカウントでログインするか、サービス公開用のアカウントを作っておくといいだろう。Yahoo! JAPAN IDhttps://account.edit.yahoo.co.jp/registration から作成する。
Yahoo!JAPAN デベロッパーネットワーク
続いて、アプリケーションの開発情報の入力を求められる。
サービスを公開するサイト情報を入力する。
Yahoo!JAPAN デベロッパーネットワーク
すると、Consumer Key が表示される。
この Consumer Key が、これから紹介するPHPプログラムで必要となる。
.pahooEnvPAHOO_YAHOO_APPLICATION_ID に設定する。
2020年(令和2年)10月31日をもって、Yahoo! JavaScriptマップAPIなど地図表示のAPIサービスが終了することが公表された。→【重要】YOLP Web APIにおける一部API・SDKの提供終了お知らせ

ゼンリンデータコムやMapboxへの移行を案内しているが、いずれも有料サービスのようだ。

楽天ウェブサービス

楽天ウェブサービス
楽天ウェブサービス は、楽天トラベルのホテル検索や、楽天市場の商品検索を行うときに利用する。ここでは、2019年(平成31年)3月17日時点の情報を記す。

まず https://webservice.rakuten.co.jp/ にアクセスし、楽天アカウントでログインし、「アプリID発効」を選択する。
ふだん利用しているアカウントでログインするか、サービス公開用のアカウントを作っておくといいだろう。楽天アカウントhttps://www.rakuten.co.jp/myrakuten/help/ から作成する。
楽天ウェブサービス
続いて、新規アプリ情報の入力を求められる。
サービスを公開するサイト情報を入力する。
楽天ウェブサービス
すると、アプリIDアフィリエイトID などが表示される。
この3つのキーが、これから紹介するPHPプログラムで必要となる。
.pahooEnvPAHOO_RAKUTEN_APP_IDDPAHOO_RAKUTEN_APP_SECRETPAHOO_RAKUTEN_AFFILIATEID に設定する。

Twitter(現・X) API

Twitter APIは、Twitter(現・X)にツイートしたりトレンドを検索するなどのサービスを提供するAPIである。
Twitter(現・X)社がイーロン・マスク氏に買収され、API有料化などの情報が流れたが、2023年(令和5年)6月現在、24時間に50ツイートまで、アプリケーションは1つまでなどの条件付きで、freeプラン(無料)が利用できる。Twitter API v2 のみ利用できるが、v2へ移行していない機能については Twitter API v1.1 を併用していく形になっている。
APIを利用するまでの手続きはすべて英語である。
Twitter API
まず、Twitter(現・X) にログインし、Developer Platform にアクセスし、画面下方にある Freeプランの Get started をクリックする。
Twitter API
Developer agreement & policy(利用規約の同意)が表示されるので、「Describe all of your use cases of Twitter’s data and API」に利用目的を記入する。250語(文字ではない)以上の記入が求められる。翻訳サービスを利用するといいだろう。
チェックボックスの意味は次の通り。すべてチェックして同意すること。
You understand that you may not resell anything you receive via the Twitter APIs‥‥ユーザーは、Twitter APIを通じて受け取ったものを再販することができないことを理解するものとする。
You understand your Developer account may be terminated if you violate the Developer Agreement or any of the Incorporated Developer Terms‥‥ユーザーは、ユーザーがデベロッパー規約またはデベロッパー規約のいずれかに違反した場合、ユーザーのデベロッパーアカウントが停止される場合があることを理解するものとする。
You accept the Terms & Conditions‥‥本規約に同意する。
Twitter API
画面が Developer Portal に移行する。Free が利用できるようになっていることを確認する。
Twitter API
次に、左メニューの Dashboard をクリックして、左図のような画面になることを確認する。もし画面が表示されなければ、左メニューの Project & Apps をクリックする。
そして、画面中央の Create Project をクリックする。
プロジェクトの名前、用途(選択式)、説明を順々に記入していく。いずれも英語で記入すること。また、記入内容は後で変更することができる。
Twitter API
次に、アプリケーションの登録画面に入る。Create a new App instead をクリックする。アプリケーションの名前を入力し、Complete をクリックする。
Twitter API
すると、API keyAPI key secretBearer token の3つの値が表示される。これらの値は二度と表示されない。API keyAPI key secret の2つは、これから紹介するPHPプログラムで必要となるので、必ず記録しておくこと。
Twitter API
Dashboard に戻り、左メニューの Project & Apps の下に、いま作成したプロジェクトトイアプリの名前があることを確認する。
アプリをクリックし、右図の Key and tokens をクリックすると、Authentication Tokens という項目があるので、Access Token and Secret を作成する。すると、これから紹介するPHPプログラムで必要となる Access TokenAccess Token secret の2つが表示される。これらの値は二度と表示されないので、必ず記録しておくこと。
.pahooEnvPAHOO_TWTR_CONSUMER_KEYPAHOO_TWTR_CONSUMER_SECRETPAHOO_TWTR_ACCESS_KEYPAHOO_TWTR_ACCESS_SECRET に設定する。

Bluesky API

Bluesky APIは、Bluesky に投稿したり記事を検索するなどのサービスを提供するAPIで、無料で利用ができる。APIを利用するまでの手続きはすべて英語である。
Bluesky APIの利用開始手順
まず、Bluesky にログインし、左ペインの一番下にある歯車アイコンをクリックする。すると、右ペインの設定得ニューが現れるので、「高度な設定-アプリパスワード」をクリックする。
Bluesky APIの利用開始手順
ウィンドウ「アプリパスワート」を表示し、すでに登録されているアプリパスワードを一覧表示する。
ここでは新規にアプリパスワードを追加したいので、「アプリパスワードを追加」をクリックする。
Bluesky APIの利用開始手順
固有の名前が表示される。この名前はアプリで使用することはないので、特に変更する必要はない。「アプリパスワードを作成」をクリックする。
Bluesky APIの利用開始手順
アプリパスワードを表示する。右にあるコピーボタンをクリックし、保管しておこう。これから紹介するPHPプログラムで必要となる。なお、このアプリパスワードは二度と表示することはない。
保管できたら、完了をクリックして作業を終了する。
.pahooEnvPAHOO_BLUESKY_HANDLEPAHOO_BLUESKY_PASSWORD に設定する。

API Ninjas

API Ninjas
API Ninjas
API Ninjasは、開発者向けに多数のシンプルかつ実用的な REST API を提供している。
初めて利用するときは、トップページの右上の「Sign Up」をクリックし、サインアップしよう。

左図の画面に切り替わるので、サインアップに必要な情報を入力し、最下段の「Sign Up」をクリックする。
GoogleアカウントIDでサインインすることもできる。
API Ninjas
すると、登録したメールアドレス宛てに左図のようなHTMLメールが届く。
まず、Veryfy Email をクリックし、登録メールアドレスをベリファイする。
次に、login をクリックし、先に登録したメールアドレスとパスワードを使ってログインする。
API Ninjas
ログインしたら、「My Account」をクリックすると、画面中央に API Key の欄がある。ここで「Show API Key」をクリックすると、API Keyを表示する。右にあるコピーボタンをクリックし、保管しておこう。これから紹介するPHPプログラムで必要となる。保管できたら、ログアウトしよう。
.pahooEnvPAHOO_NINJAS_API_KEY に設定する。

bit.ly

bit.ly
bit.ly は、短縮URLを提供するWebサービスである。
APIを使って、URLの短縮や、短縮URLを元に戻すことができる。
ここでは、API呼び出しに必要なアクセストークンの取得方法を紹介する、

まず、右上の Sign up Free をクリックし、アカウントを作成する。
bit.ly
Free($0)を選び、Get Started をクリックする。
bit.ly
電子メール、パスワードを入力し、Create Free account をクリックすると、入力した電子メール宛に登録確認メールが届く。指定したURLにアクセスすることで、アカウント登録が完了する。
なお、Googleアカウントを使ってログインすることもできる。
bit.ly
ログインすると、管理画面に入る。
左下の Settings をクリックする。
bit.ly
つづいて 左から2番目の一番下の API をクリックする。
右側の画面が「API」に切り替わるので、中程にあるログイン・パスワードを入力し、Generate token をクリックすると、アクセストークン を表示する。
このアクセストークンが、これから紹介するPHPプログラムで必要となる。
.pahooEnvPAHOO_BITLY_TOKEN に設定する。

IP2Location.io

IP2Location.io は、IPアドレスから住所を求めることができるWebサービスだ。サイトへの訪問者の地理的位置を特定するために利用されている。
商業エディションと無償のLITEエディションがあり、後者はIPアドレスの上3桁目までを判定の対象にするため、都市レベルでの正確さは約60%となっている。
商用エディションでは都市レベルでの正確さが約80%に向上するが、毎月49ドルからのサブスクリプションとなっている。
ここでは、無償のLITEエディションを利用し、API呼び出しに必要なアクセストークンを取得する方法を紹介する、
IP2Location.io
まず、CREATE A FREE ACCOUNT をクリックし、アカウントを作成する。メールアドレスや氏名の入力が求められるが、クレジットカード番号は不要である。
入力が終わると、登録したメールアドレスへアクティベーションURLが届くので、それをクリックしてアカウントの作成は完了だ。
IP2Location.io
ログインしたら、右上に表示されている氏名から Dashboard を選ぶ。
IP2Location.io
DASHBOARDに API KEY が表示されている。これから紹介するPHPプログラムで必要となる。.pahooEnvPAHOO_IP2LOCATION_API_KEY に設定する。
また、IP GEOLOCATION API QUERY EXAMPLEには、WebサービスへのアクセスURLが表示されている。現在、インターネットへアクセスしているIPアドレスがパラメータとして含まれているので、これをブラウザ表示させると、APIの応答内容を直接見ることができる。

RapidAPI

RapidAPI は、世界最大級のAPIマーケットプレイスとして、さまざまなクラウド連携サービスを提供している。また、それぞれのAPIの仕様、テストページ、各種言語での実装例も充実している。
利用するには、RapidAPIで共通に利用できる APIキーを入手する。
また、利用料はAPIによって異なるので、利用APIのマニュアルを確認してほしい。
RapidAPI
RapidAPI にアクセスしたら、右上の Sign Up をクリックする。
RapidAPI
つづいてアカウントを登録する。
Google、GitHub、Facebookのアカウント連携してもいいし、専用アカウントを登録したければユーザー名、電子メールアドレス、パスワードを入力して Sign Up をクリックする。
RapidAPI
アカウント登録してログインできたら、右上のメニューをクリックする。
RapidAPI
Apps をクリックする。
RapidAPI
アプリケーションの管理画面に切り替わる。
Add New App をクリックし、必要なアプリケーション情報を入力し、Add app をクリックする。
RapidAPI
登録したアプリは、左ペインの My Apps に追加される。そのアプリをクリックし、Authorization をクリックすると、右側に Application Key を表示する。これから紹介するPHPプログラムで必要となる。.pahooEnvPAHOO_RAPIDAPIKEY に設定する。

API FLASH

API FLASH は、指定したURLをブラウザで表示したときの画面イメージをデータとして取得できるクラウドサービスだ。直近1ヶ月の作成画像データが100枚以内であれば無料で利用できる。

API FLASH の右上の「Sign up」をクリックし、メールアドレスまたは連携SNS認証でユーザー登録する。
ログインしたら、ダッシュボードが表示される。右上に「Access keys」をクリックし、「New access key」をクリックして、新規にアクセス・キーを作成する。これから紹介するPHPプログラムで必要となる。.pahooEnvPAHOO_APIFLASH_ACCESSKEY に設定する。

e-Stat 政府統計の総合窓口

e-Stat 政府統計の総合窓口 は、日本の統計が閲覧できる政府統計ポータルサイトだ。APIを提供しており、さまざまな統計データを利用することができる。

APIを利用するには、「ユーザ登録」ページにメールアドレスを入力して仮登録する。まもなくメールが送られてくるので、本登録を行う。
ログインしたら、ダッシュボードの上にある「API機能(アプリケーションID発行)」をクリックし、必要な情報を入力し、「発行」をクリックする。すると、appID が表示される。これから紹介するPHPプログラムで必要となる。.pahooEnvPAHOO_ESTAR_APIKEY に設定する。

参考サイト

(この項おわり)
header