ブログ - お決まりのパターンカテゴリのエントリ
d3pipes で facebook の rss を取得していたのだが、
去年の夏くらいから facebook から rss を取得することができなくなっていた。
graph API から json で取得することができるようなので、d3pipes でやってみようと...
まずは facebook から json で取得しなければならないが、以下のような手順が必要な模様。
(1)developer登録する
(2)新規アプリ作成して App Token を取得する
(AppToken は Tools&Support の AccessTokenTool で得られる)
その上で
から json 形式でデータが取得できる
(facebook_page_id はGraphAPIExplorer などから取得できる)
さて、ここからが本題
去年の夏くらいから facebook から rss を取得することができなくなっていた。
graph API から json で取得することができるようなので、d3pipes でやってみようと...
まずは facebook から json で取得しなければならないが、以下のような手順が必要な模様。
(1)developer登録する
(2)新規アプリ作成して App Token を取得する
(AppToken は Tools&Support の AccessTokenTool で得られる)
その上で
https://graph.facebook.com/{facebook_page_id}/feed?access_token={access_token}
から json 形式でデータが取得できる
(facebook_page_id はGraphAPIExplorer などから取得できる)
search?q=XXXXXXXX&type=user
さて、ここからが本題
xpressme の「最近の投稿一覧」にアイキャッチ画像を表示させてみる。
facebook の RSS を取得して d3pipes で表示したかった。
RSS の取得については検索して見つけることができたが、若干問題が...
xpressme は wordpress を xoops に統合できる便利なモジュールだが、パンくずリストの表示がちょっと気になる。
これをなんとかしたい!!!
久々に CoreServer に新しいホストを借りて、SSHでつないで設定しようとしたら
と来たもんだ!
-rbash: /bin/ls: restricted: cannot specify `/' in command names
と来たもんだ!
XCL 2.2.0 から 2.2.1 にバージョンアップしたので、手順を記録しておく。
■ファイルの展開
・XCL 2.2.1 を適当な場所で解凍する。
% unzip Package_Legacy_2_2_1.zip
・上書きしたくない不要なファイルを削除する
% cd xoopscube-legacy-99a75d3
% cd html
% rm mainfile.php favicon.php
% rm -r install uploads
% cd ../xoops_trust_path
% rm -r templates_c cache
% cd ..
■ファイルの展開
・XCL 2.2.1 を適当な場所で解凍する。
% unzip Package_Legacy_2_2_1.zip
・上書きしたくない不要なファイルを削除する
% cd xoopscube-legacy-99a75d3
% cd html
% rm mainfile.php favicon.php
% rm -r install uploads
% cd ../xoops_trust_path
% rm -r templates_c cache
% cd ..
毎回はまってしまうので、ここに書いておく。
http://xcl.masa-lab.net/modules/pico/index.php?content_id=19
に書いてあるように、無料xrea を使っているときには
.htaccessに
を記述しているのだが、
これを書いたままだと coreserver などに移行した場合に
になってしまう。
何も変更せずにサーバを移行したときに、500 エラーが出る場合
.htaccess
の中身を確認してみるといい。
http://xcl.masa-lab.net/modules/pico/index.php?content_id=19
に書いてあるように、無料xrea を使っているときには
.htaccessに
LayoutIgnoreURI *
を記述しているのだが、
これを書いたままだと coreserver などに移行した場合に
500 Internal Error
になってしまう。
何も変更せずにサーバを移行したときに、500 エラーが出る場合
.htaccess
の中身を確認してみるといい。
EUCからUTF-8へ変換したサイトの pico で以下のワーニングが発生した。
Warning: array_reverse() [function.array-reverse]: The argument should be an array
in /.../modules/d3forum/include/process_this_category.inc.php on line 51
Warning: Invalid argument supplied for foreach()
in /.../modules/d3forum/include/process_this_category.inc.php on line 51
■eucからutf-8 へ移行したときに必要なこと
言語定数を変更していた場合、そのままでは言語定数が表示されない。
altsys で言語定数を見てみると「消えている!」と叫ぶのは焦りすぎ...
同じ日本語といっても、altsys からすれば japanese と ja_utf8 ではまったく違う言語なのだから当然だ。
言語を japanese に切換えてみれば、以前に設定した値が表示されるだろう。
ここで一生懸命手でコピーするのは耐えられないので、DB上から作業することにしよう。
SQLで
のようにすれば、一発で設定を移動することができる。
あとは、言語キャッシュを作成してもらうために「更新」ボタンを押しまくればOK
言語定数を変更していた場合、そのままでは言語定数が表示されない。
altsys で言語定数を見てみると「消えている!」と叫ぶのは焦りすぎ...
同じ日本語といっても、altsys からすれば japanese と ja_utf8 ではまったく違う言語なのだから当然だ。
言語を japanese に切換えてみれば、以前に設定した値が表示されるだろう。
ここで一生懸命手でコピーするのは耐えられないので、DB上から作業することにしよう。
SQLで
update `XXXX_altsys_language_constants` set language='ja_utf8' WHERE language='japanese'
のようにすれば、一発で設定を移動することができる。
あとは、言語キャッシュを作成してもらうために「更新」ボタンを押しまくればOK
mod_rewrite でいつもつまずいて忘れてしまうのでメモメモ...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...