有限会社Willさんいん ホーム

サイトマップ

お問い合わせ

0852-28-6220(平日 9時30分から17時30分)

このページの位置: Home > フロントエンドエンジニアのblog > 続・jquery.neosmart.fb.wall を導入しました

フロントエンドエンジニアのblog

RSS

続・jquery.neosmart.fb.wall を導入しました

この記事は2015年4月16日に書かれたものです。情報が古い可能性がありますのでご注意ください。

昨日導入した、jquery.neosmart.fb.wall ですが、2点ほど問題がありました。その1つはセキュリティ上の問題でもあります。

1つ目は、25人を超える「いいね!」がある投稿に対して、「いいね!」数が25までしか表示されないことです。これは、Graph API がデフォルトで25しか「いいね!」した人を表示しないのが原因とのことで、jquery.neosmart.fb.wall.js の61行目を、

url: graphURL+o.id+'/'+type+'?limit='+o.max+'&likes.limit=200&access_token='+o.accessToken',

のように、likes.limit=いいね!の上限数 というパラメータを追加することで解決しました。(参考:永遠少年症候群 | fb.wallメモ最終版

2つ目は、Facebook のアクセストークンを取得してこのスクリプトに設定するのですが、このアクセストークンを HTML か JavaScript に記述するため、誰にでもアクセストークンが見えてしまうこと。アクセストークンがあれば Facebook ページの非公開にしている情報までもが取得できてしまいます。

開発を終了した fb.wall のサイトにも「安全な方法でアクセストークンを提供することができなかった」といった内容の記述があります。これが開発終了の理由なんですね。

Since 2010 Facebook changed their Graph API a lot of times, they added server request limits and the need of access tokens. With a pure JavaScript solution it was not possible to provide access tokens in a safe way. Therefore we developed neosmart STREAM.

後継である neosmart STREAM を使用すればこの問題は解決しますが、先のブログ記事で書いたように今ひとつ使えないので、とりあえず fb.wall を使用しています。

何か解決方法がないものかとググってみたら、アクセストークンを CGI に格納して外部から見えなくするというカスタマイズをされた記事があり、早速この改造されたスクリプトを利用させていただきました。
facebookのウォールをサイトに表示する jquery.fb.wall in perl - BSDあれこれ

で、スクリプトを入れ替えたら、再び「いいね!」数の上限が25に戻ってしまいました。当然ですが。

改造された jquery.neosmart.fb.wall.js の該当部分の記述は、

url: graphURL+'?id='+o.id+'&type='+type+'&limit='+o.max,

ですが、これに &likes.limit=200 を追記しても変化はありません。

色々と書き替えたりしてみましたが、&likes.limit=200 を書き加えるべきファイルは、アクセストークンを格納している get_wall_data.cgi でした。19行目を、

$graphURL .= $id . '/' . $type . '?limit=' . $limit . '&likes.limit=200&access_token=' . $access_token . '&callback=' . $callback;

とすることで、再び25を超える「いいね!」数が表示できるようになりました。

この記事へのフィードバック

Facebook のコメントです。

3 件のフィードバック

  • なかざわさんより:

    2015年6月9日 7時57分

    はじめまして。

    Facebookにコメントが来たときにjquery.neosmart.fb.wall.jsで表示した部分にもコメントが表示されます。

    そのコメント欄を非表示にする方法を教えていただきたいです。

    • 石輪さんより:

      2015年6月10日 1時26分

      オプションに showComments:false, を設定したら非表示にできます。

      • なかざわさんより:

        2015年6月12日 8時46分

        ありがとうございました!

        できました!!

コメントを残す

この記事のトラックバックURL:
https://www.will3in.co.jp/blog/article/sequel-installed-jquery-neosmart-fb-wall/trackback/

このページの先頭へ