-
任意の場所にリポジトリをクローンします
$ cd path/to/imsjapan $ git clone https://github.com/IMSJapan/clicker-php-sample.git
$ mysql -u <user> -p
mysql> CREATE DATABASE clicker CHARACTER SET utf8mb4;
$ mysql -u <user> -p clicker < lti2_tables.sql
$ mv DataConnector_mysqli.php.addme vendor/imsglobal/lti/src/ToolProvider/DataConnector/DataConnector_mysqli.php
$ mv OAuthSignatureMethod.php.moveme vendor/imsglobal/lti/src/OAuth/OAuthSignatureMethod.php
$ mv HttpRequestor.php.moveme vendor/imsglobal/caliper/lib/Caliper/request/HttpRequestor.php
- PhpStorm を起動し、プロジェクトをオープンします
- Welcome で "Open" を選択し、clicker をクローンしたディレクトリを選択
- ウィンドウの左側にある "1:Project" をクリックしてプロジェクトツリーを表示
- [Tool] - [Composer] - [Install] で vendor ライブラリ群を取得
- もし,Coposer Setting が表示された場合は,PHP interpreter を設定 (例 /usr/bin/php)
- .env.example を .env にリネームして,DB接続などをローカル用に変更
- ウィンドウ下部にある "Terminal" をクリックしてターミナルを表示
- 下記のコマンドでアプリケーションキーの初期化
$ php artisan key:generate
- データベースのクリッカー関連テーブルを作成
$ php artisan migrate
下記のエラーが表示される際には,接続ユーザの認証プラグインが mysql_native_password のユーザを作成し,接続する必要があります. (caching_sha2_password 認証プラグインをサポートしていないため.)
1 PDOException::("PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]")
my.cnf を以下のように設定後に MySQL を再起動
[mysqld]
default_authentication_plugin=mysql_native_password
以降,新しくユーザを作成は,認証プラグインに mysql_native_password が設定される.
- テーブルにテストデータを挿入
$ php artisan db:seed
- PHP組み込みサーバを起動(デフォルトのポート番号8000)
ポート番号に80を指定して起動
$ php artisan serve
$ php artisan serve --port=80
- 講師権限でコースを開きます
- コース内メニュー [設定] - [アプリ] - [アプリ設定の表示] とクリックします
- "外部アプリ" の一覧において、 [+アプリ] をクリックします
- "アプリの追加" ダイアログで LTI アプリの追加設定をおこないます
- 設定のタイプ: XML を貼り付け
- 名前: アプリ名
- コンシューマ鍵: key
- 共有シークレット: secret
- XML設定: https://canvas.instructure.com/doc/api/file.tools_xml.html を参考に XML を作成し貼り付けます
- blti:launch_url: ローンチURL
- blti:title: コース内メニューに表示されるアプリ名
- blti:description: アプリの説明 例)コース内メニューに表示する場合
<?xml version="1.0" encoding="UTF-8"?> <cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:blti = "http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm ="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp ="http://www.imsglobal.org/xsd/imslticp_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd"> <blti:launch_url>http://localhost:8000/launch</blti:launch_url> <blti:title>Clicker</blti:title> <blti:description>Provides a clicker tool</blti:description> <blti:extensions platform="canvas.instructure.com"> <lticm:property name="privacy_level">public</lticm:property> <lticm:options name="course_navigation"> <lticm:property name="enabled">true</lticm:property> </lticm:options> </blti:extensions> </cartridge_basiclti_link>
- 設定できたら [提出] をクリックします