Twin:te 開発者ブログ

Twin:te 開発にまつわる記事を書いていきます。

"Twins"から"Twin:te"に授業をインポートする機能について

Twinsにアクセスした時にTwin:teアプリがすること

 

先日(12/20)リリースしたTwin:te ver.2(以下Twin:te)には「Twinsからインポート」と呼ばれる機能があります。Twinsに登録されている情報を用いることで時間割の追加を簡単にするとても便利な機能ですが、動作の仕組みを詳しく知りたい人もいると思います。

 

今回の記事では「Twinsからインポート」機能がTwinsにアクセスしたときにしていることについて、解説していこうと思います。

 

Android/iOS版Twin:teアプリは、Twinsの履修画面にアクセスしたときにhttps://scripts.twinte.net/sp.js のスクリプトを読み込みます。

このJavaScriptによって履修している授業の番号をスクレイピングし、Twin:teのサーバーにPOSTします。そのため、あらかじめTwin:teにログインしておく必要があります。

安全性を確認したい場合は、https://scripts.twinte.net/sp.js のスクリプトをあらかじめ確認してください。スクリプトを外部においておくことで、誰もがいつでもスクリプトの正当性を確認できるようにしました。

よって、スクリプトを読み込む必要があるためにTwinsからTwin:teにインポートする機能はAndroid/iOS版アプリでのみ利用できます。

 

以下の画像は、Twin:teがTwinsから授業番号を取得する流れを示しています。

f:id:twin-te:20191220160220p:plainTwinsからTwin:teのサーバーに送信されるデータは授業番号のみです。

また、クライアント側でスクレイピング等の解析が行われることで安全性を確保しています。なお、アプリ側の動作は以下のGitHubに公開されていますので、安全性が気になる方はご覧ください。以下のGitHubではTwin:teサービスの全てのプログラムが掲載されています。TwinsからTwin:teに授業をインポートするスクリプトのPC版などもありますのでご活用ください。

github.com