仮想オフィスを活用したITエンジニア研修とは?
情報化社会の現代、新聞や雑誌などで「API」という文字を目にしたことがある方も多いと思います。
しかし、頭の中では「API?」とイメージがつかない方も少なくないでしょう。
プログラマーであるかどうか関係なしに、現代社会を生きるうえで「API」の理解は欠かせません。
非エンジニアの方も含め「API」について理解してもらえるように、少しわかりやすく表現を崩して解説します。
1.APIとは
API(呼び名:エーピーアイ)は、Application Programming Interface(アプリケーション・プログラミング・インターフェース)の略です。まずはAPIの概要をご紹介します。
①APIの意味
API(アプリケーション・プログラミング・インターフェース)を直訳すると「アプリケーションをプログラミングするためのインターフェース」。
APIの意味を端的に説明すると「APIはアプリケーション同士をつなぐもの」で、「他サービスの機能を連携できる仕組み」です。
アプリケーション同士をつなぐもの、といってもわかりにくいですよね。
イメージしやすいように、私たちの日常生活でAPIを例えてみます。
普段私たちがトイレに座った時、ほとんどの場合、右側に温水洗浄便座のコントロールパネルがあります。どのボタンを押すとどうなるか、誰が見てもイメージできますよね。
このコントロールパネルの配置やデザインを「ユーザー・インターフェース」といいます。
各ボタンは、人とトイレを接続する重要なポイントになりますね。
「アプリケーション・プログラミング・インターフェース(API)」は、そのコンピューター版と考えましょう。コンピューターとトイレを接続するポイントが、APIといわれる部分になります。(注:トイレは例です。)
人ではなくコンピューターで「大」のボタンを押すと「大」の水が流れる。ただコンピューターでボタンを押す場合は、信号(データ)を送ってボタンを押す処理をトイレに指示するのです。
トイレには「大」以外にも「洗浄」や「消臭」などさまざまな機能が設定済み。それらの目には見えない「温水洗浄便座のコントロールパネル」こそAPIといえる部分になります。
実際には人に代わってコンピューター(API)でトイレの水を流すことはないと思いますが、「温水洗浄便座のコントロールパネル」を「スマホの画面」に置き換えるとどうでしょうか?
「大」や「洗浄」のボタンをアプリのボタンに置き換えてイメージしてみてください。
アプリのアイコンをタップしてWebサービスなどに登録するとき、たとえばアカウント認証でGoogleアカウントを利用する場合。登録ボタンをタップした後、Googleにログインしなくてもワンクリックでアカウント登録できたりしませんか?
人に代わってコンピューター(プログラム)がスマホアプリと接続し、認証を済ませてくれるため簡単に登録を終えられるのです。
最近ではゲームもネットワークに繋がれることから、「あつまれ どうぶつの森」や「マインクラフト」もAPIによってプログラムでゲームを制御することが可能になりました。
身の回りのどんな物やサービスに、目には見えないAPIが用意されているか、知っておくだけでも思考範囲が広がることでしょう。そしてより多くの可能性を感じられ、ひいては毎日のモチベーションアップにもつながりますね。
②APIの仕組み
APIは「使ってもらう側」と「使う側」の両方がいて、はじめて機能します。
Web関連のAPIをもとに「使ってもらう側」を考えると、「このURLにアクセスされたらユーザー情報を返そう」「このURLにアクセスされたら今の累積ポイントを返そう」などURLによって結果を制御しま
す。
一方の「使う側」は、「使ってもらう側」が用意したURLにアクセスして必要な情報を取得するのです。
Webサービスなどで使われるAPIの流れを簡単に描くと以下のようになります。
(APIイメージフロー:GETメソッドの例)
上図の場合、使ってもらう側は「Webサーバー」にAPI用のプログラムを用意して、使う側は特定のURLに指定のキーと値を加えて準備します。この場合、キーはidで値はPCの場合123、スマホの場合789になります。
端末からWebサーバーへリクエスト(要求)するタイミングは、ページを開いた時やボタンを押したときなどさまざまでしょう。
そしてリクエストを受け取ったWebサーバーは、事前に用意しているプログラムで、リクエストの内容に応じた結果をレスポンス(応答)します。
最終的に端末上にレスポンスの内容が表示され、Webページを見ている人は自分のアカウント情報や購入履歴などをみられるようになります。
ポイントは、他者が運用しているWebサーバーにリクエストし、レスポンスをもらう、という点です。
基本的な流れは以上ですが、「使ってもらう側」からすると、一気に同じURLにアクセスされると、Webサーバーが処理しきれなくなり、エラーが発生する可能性も出てきます。
そのため1分間に60回までアクセス可能(API利用可能)など、一般的には利用制限が設けられています。
またPayPay APIやStripe APIなど金銭が関係するAPIは、大事な情報やアカウント制御が伴います。不正にAPIを利用されると被害が発生する可能性もありますよね。
そうならないためにも、API利用者に利用者を識別するためのトークンやシークレットキーなどを発行し、セキュリティを担保する仕組みがとられています。
またAPIには無料のものと有料のものがあり、有料のものも定額と従量課金などAPI提供者によって条件は異なります。
2.API連携を行うメリット
ここからはAPIを「使う側」に絞ってご紹介します。まずはAPI連携を行うメリットを確認しましょう。
①開発工数を削減できる
アプリ開発に必要な各種データ群を1から用意すると、手間と時間がかかります。
たとえば利用者のYouTubeの情報やTwitterの情報が知りたい場合、どうでしょうか?またWordPressサイトの投稿内容を他のWebサービスなどで利用したい場合も同様です。
これらの情報量が多い処理でも、APIを利用することで効率的に情報収集できます。
その結果、開発期間の短縮化が期待できますね。
②他サービスのデータを2次利用できる
Webサービスやアプリを開発する際、「あのデータも表示させたい」「あのデータを使って計算結果を表示させたい」など、自サービス以外の情報を利用したい場合も出てきます。
代表的な例でいえば、株価や為替など毎秒単位で変化する情報。
株や為替については、Yahoo.comから提供されているAPIを利用すると、下記ページのように本日のNIKKEI225を取得できます。
https://machiweb.site/hello/traino/sample_api.php?type=price
(筆者作成の簡易ページ)
③ユーザーの利便性がよくなる
ユーザー登録やログイン画面において、ユーザーIDとパスワードの入力が伴わない「Googleログイン」や「Twitterログイン」は便利ですよね。
こうしたGoogleやTwitterアカウントを利用した登録やログインには、Google APIやTwitter APIが使われています。
また課金にStripeを利用している場合、Stripe APIを使うことで定額課金の停止・再開もユーザーの管理画面から実行でき、電話連絡などの手間を省けますね。
このようにAPIを利用することで、ユーザーの利便性も向上し、サービス提供者の管理・運用面も簡素化することが可能になります。
④セキュリティが向上する
アカウント登録やログインまわりを考える際、1からシステム構築を行うとセキュリティの要件定義や運用リスクが伴います。
一方世界トップクラスのセキュリティシステムをもつGoogleなどの新規登録、ログインまわりを利用できると、セキュリティリスクは低減できますね。
また株価などの数値を使ってサービスを提供する場合は、人が入力するよりAPIの方が安く、安全ではないでしょうか。人間は誤入力しますが、APIは正しい情報を返してくれます。
3.よく使われるWeb APIとは?
APIの中でも私たちの生活に欠かせない存在となっている「Web API」についてご紹介します。
① APIの種類
私たちが利用できるAPIはたくさん存在しますが、種類を分けるとふたつに分類できます。
- モノの状態を確認・制御するAPI
- データを取得・変更するAPI
ひとつ目の「モノ系API」は、テスラ自動車やaibo、3DプリンターなどのAPIが該当するでしょう。
ふたつ目の「データ系API」は、Googleログインやカード決済、QRコード決済、株価データの取得などが考えられますね。
日常生活の中で使用する割合としては「データ系API」の方が多く、仕事の需要としてもデータ系APIの方が多いでしょう。
② Web APIとは
Web APIは、WebサーバーやブラウザなどWebに関連するAPIの総称です。
特定のURLにアクセスしたら、アカウント情報を取得できたり、メッセージを送信できたりするようなAPIが該当します。
API提供元にもよりますが、通常Webページの管理画面で行っているような処理を、プログラムで処理できるという特徴がありますね。
例を挙げると、定刻になったらAPIでメッセージを発信したり、メッセージを受け取ったらその内容に応じたメッセージを返したりなどです。
GoogleやTwitter、LINE、Chatworkなど主だったWebサービスの多くは、APIを利用できるような環境を提供してくれています。
4.Web APIの使いどころと利用例
主だったWeb APIで何ができるかをご紹介します。Amazon API以外は無料で利用開始できますよ。
また下記で紹介していないTikTokやInstagramなどもAPIを提供しているので、気になる方は調べてみてください。
① Facebook API
普段Facebookにログインして行っている、いいね!数の確認や投稿、コメントチェックおよび返信をFacebook APIで自動的に処理することが可能です。
またWebサービスなどでよく見る「Facebookアカウントで登録」や「Facebookアカウントでログイン」などもこのAPIが使用されますね。
MessengerのAPIでは自然言語処理(NLP)の機能も使えるので、グローバルなコミュニケーションをシームレスに実現できるかもしれません。ビジネスの加速を予感させられますね。
② Google API
GmailやGoogleカレンダー、Googleドライブ、Googleスプレッドシートなど、世界中の多くの人がGoogleサービスによって支えられています。APIを使うことで、これらの便利な機能を人間ではなくプログラムで制御することが可能になるのです。
たとえばコーヒーショップの開店を考えたとき、SNSの発信をはじめ、Googleマイビジネスを利用するケースも多いと思います。しかし個人で経営となると、多チャンネルへの情報発信や情報更新は負担になりますよね。
Google APIを利用し、1カ所で編集した情報がWebサイトやSNS、Googleマイビジネスなどにも反映されると、営業効率が上がることでしょう。
APIで利用できるGoogle機能はたくさんあり、300種類以上におよびます。
③ LINE API
日本人の約7割の人が使用しているといわれるLINE。
LINE社からもAPIが提供されていて、「クロネコヤマト」や「経済産業省 新型コロナ 事業者サポート」などでLINE公式アカウントが利用されています。
LINE APIは、「Messaging API」「Login」「Mini App」など全部で5種類提供されています。
LINE APIのログイン機能を利用すると、2回のボタンタップだけで利用者のLINE IDやニックネーム、イメージ画像などを取得でき、これを活用してLINEログインを実装できますね。
またMessaging APIを活用すると、自動応答型チャットボットを作成したり、ユーザー毎にLINE公式アカウントのメニューを変えたりもできるようになります。
LINEをマーケティングで利用されている方なら押さえておきたいですね。
④ Twitter API
LINEの次に日本で利用者の多いSNSがTwitterです。
Twitter APIでは、通常Twitterにログインして操作する「ツイートする」や「リツイート」「リツートの取り消し」「いいね数の確認」「ブロック」などを、プログラムで自動制御できます。
主に情報発信を他のSNSで利用する場合や、マーケティング的な要素で使用されるAPIになるでしょう。
⑤ YouTube API
スマホ普及とステイホームの定着によって、一大産業となっているYouTubeにも専用のAPIが用意されています。
YouTubeは市場規模が大きく、また機能や情報が多いことから現在4つに分かれてAPIが提供されています。
- YouTube Player API:再生時間に応じた制御を行いたい場合などに利用
- YouTube Data API:動画アップロードをプログラムで制御したい場合などに利用
- YouTube Analytics API:YouTuberの情報を入手したい場合などに利用
- YouTube Live Streaming API:ライブストリーミングを制御したい場合などに利用
このように充実した内容のYouTube APIですが、YouTube再生時の広告に関係する情報などはAPIでは公開されていません。別途スクレイピング等で取得する必要があります。
⑥ Amazon API
買い物でお世話になっている方も多いAmazonからは、2種類のAPIが提供されています。
- Product Advertising API
- SP-API(Selling Partner API)
1のProduct Advertising APIは、Amazonアフィリエイター向けのAPI。主に商品情報を取得する際に利用します。
2のSP-APIは大口出品者向けのAPIで、商品情報の取得や出品商品の制御、レポートの取得などAmazon Sellerで操作していることの多くをプログラムで制御できるようになります。
ただAmazonのAPIについては、1・2共にAmazonの審査を通過する必要があります。APIの敷居が高い分、利用者は少ないと考えられますので、使えると競争で優位になりますね。
5.Web APIの使い方
Twitter APIを例に実際の流れを確認してみましょう。
①アプリの情報をAPIサイトに登録
今回ご紹介したFacebookやGoogle、Twitter APIについては、利用情報を登録する必要があります。
Twitter APIの場合は、下記の開発者向けページから登録できます。
https://developer.twitter.com/en/portal/dashboard
Twitter Developerのページにアクセスした後、「Create Project」をクリックしましょう。
次にAPI等を管理するためにプロジェクト名を記述します。
APIの使用目的を選択します。
プロジェクトの概要を記述しましょう。
このプロジェクトで使用するAPIが「既存アプリ」に対するものか、「これから作成するアプリ」に対するものか選択します。
アプリに関する情報を入力するステージで、まだ未開発のアプリになりますので「Development」を選択。
アプリ名を入力します。
するとAPI キーやAPIキーシークレットが表示されました。
②TwitterのAccess TokenとAccess Token Secret
Twitter APIについては、APIキーとAPIキーシークレット以外に「Access Token」と「Access Token Secret」が必要になります。
プロジェクトのトップ画面に表示されている「Keys and tokens」タブをクリックしましょう。
「Access Token Secret」の Generateボタンをクリック。
「Access Token」と 「Access TokenSecret」を控えておきます。
③アプリ側にAPIキーとシークレットキーを設定
今回はPythonを使ってTwitter APIを操作してみます。
上記プログラム(Google Colab):https://colab.research.google.com/drive/1z8t5cfZjhpv0xzpni1d8e9czjYkP3beP?usp=sharing
まずはAPIキーやAccessTokenなど必要な情報を入力しましょう。
④実装する
APIリファレンスを確認しながら実装しましょう。
今回は検索APIを使用して、Twitter内にどんな「プログラミング API」に関するツイートがあるか確認しました。
⑤実行する
プログラムを実行して、レスポンス200が返ってきていることを確認しましょう。
Twitter APIを使ってresponseを受け取った後は、上図のように長いテキストで応答があります。
この中から必要な情報を切り抜き、リツイートしたアカウントなど必要な項目を取得し、次のデータ処理に活かせます。
6.Web APIを使う際の注意点
たくさんの情報を入手できるWeb APIは大変便利ですが、使い方をよく理解して使用する必要があります。
① APIキーとシークレットキーの管理に注意
APIのキーはログインパスワード同様に、他人に知られないよう厳重に管理する必要があります。
他人に知られるとなりすましでツイートされたり、アカウント乗っ取りが発生したりする可能性があります。
GitHubなどでうっかりシークレットキーなどがアップロードされないように、「.gitignore」を活用しましょう。
また2、3ヶ月に一度など、定期的にキーを更新するとより安心してシステムを利用できるようになるでしょう。
②APIのアップデート情報を確認しておく
利用するAPIによっては更新頻度が多く、APIのアクセスポイント(URL)が変わることもあります。アプリ公開中にAPIエラーが出るとシステムの信用が下がってしまうので、定期的に使用するAPIの公式ドキュメントを確認するようにしましょう。