TIESのブログ

Office Online でチロブック編集(4)

昨日の仕様変更( ◠‿◠ )をGitHubに反映し、CHiLO Producer 3.0.5をリリースしました。

ワークシートの保護は解除していますが、入力セルのロック解除自体は設定したままなので、再びワークシートを保護すれば、入力セル以外を編集不可にすることができます。

また、ワークシートの保護をした状態で、[book-list]がOffice Onlineで編集できない問題は修正していますので、ワークシートを保護しても保護していなくても、Office Onlineでの編集が可能です。

その他、run.batの不具合修正や、テンプレートに内表紙を含める変更も行っています。

次回のリリースでは1~2点の仕様改善を行う予定です!

Office Online でチロブック編集(4) はコメントを受け付けていません

run.batの不具合と改行コードの話

昨日も記事にしたワークショップで、受講生の方にご指摘いただいたのですが、WindowsでCHiLO Bookを出力すると、コマンドラインによるブックテンプレートの指定が効かない場合があることがわかりました。

現在、不具合を修正したrun.batを https://github.com/cccties/chilo-producer に反映しています。

この現象はWindowsでCHiLO Bookを出力するバッヂファイルであるrun.batの改行コードが関わってきます。普段我々はSourceTreeで作業を行っているのですが、これでGitHubのCHiLO Producerを同期すると、通常run.batの改行コードはCR+LFになります。

一方、今回のワークショップで行った手順では、GitHubから直接ダウンロードすることになっています。この場合、run.batの改行コードはLFとなります。

今回の現象は、後者の改行コードがLFの場合のみ起こっており、普段使っているSourceTreeの環境では気づくことができませんでした。実際のユーザーはGitHubから落とすことがほとんどなわけで、テスト方法もまた検討しないといけないですね。ご指摘、ありがとうございました。

ちなみに先週の時点では内表紙も1枚おかしくなっていたのですが、これは画像1枚で説明できます。

(*ノωノ)

run.batの不具合と改行コードの話 はコメントを受け付けていません

ドラッグ&ドロップでCHiLO Bookを出力したときの動作を改善

本日はCHiLO Producerの話題です。

Windows環境では、run.batにシリーズディレクトリまたはstructure-books.xlsxをドラッグ&ドロップすることでもCHiLO Bookを出力できますが、処理が終わるとすぐにコマンドラインのウインドウが閉じてしまうため、エラーなどが表示されていても読めない状態になっていました。

そこで、ドラッグ&ドロップによりCHiLO Bookを出力した際には、最後にポーズ処理を入れるように改善しました。

動作確認は行ったので、近々本番環境にも反映する予定です。

ドラッグ&ドロップでCHiLO Bookを出力したときの動作を改善 はコメントを受け付けていません

動画の再生・一時停止処理が続けて行われる不具合を修正

CHiLO Reader でビデオ分割機能を使わず、YouTube動画埋め込みを行うと、
動画が再生した瞬間に一時停止していまう不具合がありましたので対応しました。

ログを見たところ、onStateChange が、再生開始を実行した時に停止が続けて実行されている感じでした。

どう直そうか考たのですが、よく考えたらビデオ分割しないYouTube動画埋め込みの場合、そもそもYouTube のIFrame API 呼ぶ必要ないはずなので、上記条件の時は CHiLO Producer 出力時に記述しないよう修正しました。
(自動再生の部分はURLの引数に autoplay=1 を加える事で対応)

とりあずこの対応で動作したので、いくつかテストして問題なければ、修正部分がある book_templates を更新しておこうと思います。

動画の再生・一時停止処理が続けて行われる不具合を修正 はコメントを受け付けていません

動画が指定開始位置から再生されない不具合を修正

動画が指定開始位置から再生されない不具合を修正

CHiLO Reader でビデオ分割機能を使うと、特定の条件で動画が指定開始位置から再生されない不具合を見つけましたので修正しました。

この不具合が起こる条件は、ビデオ分割機能を使用し、また、YouTube動画埋め込み機能を利用した上で、以下順で動かすと発生していました。

1. 動画が始まる最初のページを少し見る
2. 別セクションのページに目次から移動
3. 移動後、また最初のページに目次から移動

0秒目から開始するように設定していたのに位置がずれる

確認した所、CHiLO Reader のスクリプト箇所に問題がありましたので、修正し更新しておきました
現在、この問題は起こらないと思います。

動画が指定開始位置から再生されない不具合を修正 はコメントを受け付けていません

CHiLO Producer 3.0.1リリースしました。

3.0.0のリリースからあまり時間がたっていませんが、マイナーバージョン版のCHiLO Producer 3.0.1をリリースしました。

修正内容はbasicデザインテンプレートにおける構文エラーの修正です。

この構文エラーにより、basicデザインのテンプレートを使って、CHiLO Bookを出力することができなくなっていました(issue #28)。

なお、非公開の開発版CHiLO Producerではこの構文エラーは発生しなかったので、何故かなと思ってブックテンプレートの履歴を調べたところ、

document.xhtmlの末尾に#endが一つ足りませんでした。たったこれだけで、出力ができなくなってしまうのですね。

開発版との比較を行えば防げるエラーなので、今後気を付けていきたいと思います。

CHiLO Producer 3.0.1リリースしました。 はコメントを受け付けていません

解説ビデオのコンテキストメニューを表示させない

Web版 CHiLO Book の解説ビデオを右クリックした時にでるコンテキストメニューを表示させないようにしました。
主な理由として、簡単にビデオを保存して欲しくない思いを込めています。(ですので、あくまで"簡単"にです)

ここのメニューを表示させない

今回の対応は、古い CHiLO Book では効かず、新しいテーマで出力した CHiLO Book だと効く対応となっています。
ですので、比較的古いのが並んでいる CHiLO Book Library ではせっかくした設定も今のままでは効きません。。

ということで、そろそろ CHiLO Book Library に登録している本を、新しいテーマで更新していこうと思います。(以前もこの決意をしたような)

解説ビデオのコンテキストメニューを表示させない はコメントを受け付けていません

CHiLO Reader 更新

今回、CHiLO Producer/CHiLO Reader の二つを更新しますが、
CHiLO Reader の準備が終わりましたので、こちらをGitHubに反映しておきました。
https://github.com/cccties/chilo-reader

今回は、現在公開中の CHiLO Producer で出力した CHiLO Book でも表示できるよう互換性は持たしています。

ただ、新しく追加した機能を利用するためには、新しい CHiLO Producer で出力する必要があります。
そちらはまだ準備ができていないので、もう少しお待ちください。(早ければ今週末ぐらいにはアップできると思います)

CHiLO Reader 更新 はコメントを受け付けていません

CHiLO Producer/CHiLO Reader更新版の用意

前回の更新版検証から色々調整を行って、近々、CHiLO Producer/CHiLO Readerの更新版を公開できそうです。

今回は、Web版利用時における対応が主です。まずは、Youtubeの埋め込み表示の対応、そして、
「自動ビデオ再生」・「再生時間の指定」・「自動ページめくり」などの機能を追加する予定です。

これらの機能を組み合わせることで、例えば、Youtubeなどで公開されている1本の動画を、
CHiLO Book上では再生したい範囲をページ毎に指定して見せる。なんて事が可能になります。

そして、「自動ビデオ再生」「自動ページめくり」が機能することで、ページを手動でめくらなくても切り替わり、流し見することも可能です。

現在、システム部分の調整は大体終わり、アイコン作成や、マニュアルページ作成などを進めています。
一通り揃いましたら改めてお知らせしたいと思います。

CHiLO Producer/CHiLO Reader更新版の用意 はコメントを受け付けていません

Facebook API v2.2 の使用期限が切れました

Facebook API v2.2 の使用期限が切れましたね。
https://developers.facebook.com/docs/apps/changelog
TIESではちょうど v2.2 辺りに Facebook アプリをよく作成していましたので、それぞれアップグレード対応が必要でした。

API Upgrade Toolで確認してね、と通知が来ていたので確認した所、特に問題なさそうなので対応していった所、
CHiLOサイトのOAuth認証で問題が出ました。

エラーが出てログインできません

CHiLOサイトでは、公開している OAuth 認証が出来るプラグインのうちの1つを使用しており、
そのうち、Google と Facebook の OAuth 認証を有効にしているのですが、そのうち、Facebookの方だけログインできなくなりました。
作成者様曰く、 Moodle 3.3 からは コアに OAuth 認証が実装されるらしいしもう新しいバージョンは作らない的なことらしいです。

コアに OAuth 認証が実装されるのでしたら、そちらにアカウントの引っ越し作業すべきかとも思ったのですが、Moodle 3.3 はまだ正式版出ていないので本番環境で使うのは怖いですね。
ただ、コアで実装されるらしいのに、今の時点で別プラグインに引っ越すのもタイミングが悪いなぁってことで、とりあえず延命措置として今のプラグインでもFacebookのアカウントでログインできるようにソースを少しいじってみました。

エラーを見ると

Required option not passed access_token Array

と出ていたのでそれで探したら、同じ問題のことが書かれていたページがありました。
https://github.com/thephpleague/oauth2-facebook/issues/1
v2.3 から受け取る情報の形がJSONに変わっているらしいです。

本当ですね
https://developers.facebook.com/docs/apps/changelog#v2_3
> [OAuthアクセストークン]フォーマット - access_tokenのコードを交換した際に返されるhttps://www.facebook.com/v2.3/oauth/access_tokenの応答フォーマットが、URLエンコードされるのではなく、有効なJSONを返すようになりました。
> この応答の新しいフォーマットは、{"access_token": {TOKEN}, "token_type":{TYPE}, "expires_in":{TIME}}です。RFC 6749のセクション5.1に準拠するために、このアップデートを行いました。

とりあえず一時措置として、取得したJSONデータをばらしてaccess_tokenを取得すれば動くようなことを言っいるらしいので、こちらもそれにあやかって同じように変更しました。

/vendor/league/oauth2-client/src/Provider/Facebook.php
--- const DEFAULT_GRAPH_VERSION = 'v2.2';
+++ const DEFAULT_GRAPH_VERSION = 'v2.7';

/vendor/league/oauth2-client/src/Provider/AbstractProvider.php
--- return $grant->handleResponse($result);
+++ $result = array_keys($result);
+++ return $grant->handleResponse(json_decode($result[0], true));

変更後、Facebook でログインできるようになりました!(*^-^*)

と思ったら Google でログインできなくなりました!(´゚д゚`)

ということで、Facebook の時だけ処理されるように微修正...

/vendor/league/oauth2-client/src/Provider/AbstractProvider.php
+++ if($this->name == 'facebook'){
        $result = array_keys($result);
        return $grant->handleResponse(json_decode($result[0], true));
+++ }else{
+++     return $grant->handleResponse($result);
+++ }

とりあえずこれで Google と Facebook 両方ログインできました。本番環境にも適応させてみて、今の時点でですが、特に問題なく動いています。
一応、Facebook API 2.7 までは動いたので、しばらくはこれで誤魔化せそうですね。(API 2.8ではこの対応だとエラー出た)

---

と、対応してみたものの、facebook と google しか動作見てないので、他はどうかわからないですし、ちゃんとした修正版が出るようでしたら、そちらの方を適応した方が良いですね。

Facebook API v2.2 の使用期限が切れました はコメントを受け付けていません