見出し画像

Webアプリ「まちかどルート」にAPIを実装 - 個人開発者どうし連携したい

じぶんがイチから個人でプログラミング・開発しているWebアプリ、その名も「まちかどルート」。
https://www.makepost.net/projects/67

そのバージョン6.0でついに外部のサービスやアプリからまちかどルートのタイムラインに投稿できるようにしました。

技術的なことを言えば《APIを実装した》ということになります。


ちなみにAPIとはApplication Programming Interfaceの略。このAPIをアプリに実装することによって、ほかのアプリやサービスと連携できます。

わかりやすい例でいうと、Googleマップを掲載しているWebサイトがありますよね。あれはGoogleがAPIを用意していて、そのAPIを使うことによって自身のWebサイトに地図を表示できるようになっています。

ほかの例でいうと、TwitterやFacebookのアカウントを使ってログインできるアプリやWebサービスがたくさんありますよね。あれはTwitterとFacebookがAPIを用意しているおかげです。


要するに、まちかどルートのAPIを使えば、ほかのアプリやサービスといろんな連携ができるわけです。

よかったらみなさんも《まちかどルートAPI》を使ってみませんか?

そして今後も少しずつAPIを充実させていき、じぶんと同じように個人で開発している方々の作品といろいろ連携してみたいです。


例として、まちかどルートのAPIをほんの少しだけ説明しておきますね。

[例] IFTTTを使って まちかどルートに自動投稿

1. まちかどルートにログイン

こちらからアカウントを登録したりログインできます。
https://machiroute.herokuapp.com/

2. 冒険者のステータスでアクセストークンを確認

じぶんのアクセストークンをコピーして控えておきましょう。

3. IFTTTでアプレット作成

https://ifttt.com/

「New Applet」→「this」→任意のトリガー→「that」→「webhooks」→「Make a web request」を使います。

まちかどルートAPIを使う場合の入力例は下記のとおりです。

URL

・まちかどルートのタイムラインに「冒険中のつぶやき」を投稿する場合
https://machiroute.herokuapp.com/api/v1/posts

・まちかどルートのタイムラインに「ニュース」を投稿する場合
https://machiroute.herokuapp.com/api/v1/posts/news

・Foursquareなどのチェックイン系サービスと連動して投稿する場合
https://machiroute.herokuapp.com/api/v1/posts/checkin
Method
POST
Content Type
application/x-www-form-urlencoded
Body
太字以外の部分を適宜書き換えてください。

・まちかどルートのタイムラインに「冒険中のつぶやき」を投稿する場合
token=アクセストークン&body=本文

・まちかどルートのタイムラインに「ニュース」を投稿する場合
token=アクセストークン&body=本文&url=URL

・Foursquareなどのチェックイン系サービスと連動して投稿する場合
token=アクセストークン&body=本文&spotname=スポット名&url=URL
※「&url=URL」の部分は必須ではありません

上記のように各欄を埋めてアプレットを作成してみてください。

このように、まちかどルートAPIとIFTTTを組み合わせると、たとえば毎月〇日や毎日の決まった時刻に特定の内容を自動投稿したり、好きなWebサイトやサービスの情報が更新されたらそのURLをまちかどルートに自動投稿する、といったことができます。


まちかどルートAPIの制限事項

・いまのところ投稿できるのは以下の3種類
「冒険中のつぶやき」
「ニュース」
「チェックイン」

・まちかどルートでTwitterアカウントを登録していてもTwitterに連動投稿されません

・このAPIで投稿しても「冒険者の経験値」は加算されません


以上、プログラミング初学者につき説明不足の感は否めませんが、どうぞよろしくお願いいたします。


2019.05.07
API用のドキュメントを書き始めました。
https://machiroute.herokuapp.com/docs


よかったらサポートをお願いします。もしくはギルドハウス十日町へ遊びにいらしていただければうれしいです。