ブログの性能が低下するので、OCNと次のようにやりとりした。

投稿日:

ブログの記事のフッタに、「読者が記事を Twitter で他のユーザーに通知できるようにするためのリンクを表示する」設定をすると、実用にならないほど表示が遅くなります。

 記事10件ほどならなんとか我慢できるレベル(10秒~30秒くらい)ですが、20件ほどになると等比級数的に遅くなるように感じられ、50件ほどになると完全に反応しなくなります。

 「ツイッターへのリンク表示」を完全に止めると、記事が100件ほどあってもストレスなく迅速に表示できます。

 せっかくの機能ですが、到底実用レベルにないように思います。
 幾分料金も払っておりますので、調査の上、改善してください。


お客様
平素はOCNサービスをご利用いただき、誠にありがとうございます。
OCNテクニカルサポート担当 高橋と申します。
このたびは、OCNブログ人サービスをご利用に際し、ご不便を
お掛けし申し訳ございません。
お問合せいただいております、記事のフッターに[Twitter]ボタンを
設置することで表示速度が遅くなる件についてご返信いたします。
お知らせいただきました<http://t-sato.blog.ocn.ne.jp/>へアクセスを
しましたところ、[Twitter]ボタンがございませんでしたので、
よろしければ[Twitter]ボタンを設置していただき、こちらの窓口で
確認をさせていただけますでしょうか。
なお、件数により反応がなくなる状況ですが、ブログへアクセスすると
どのような状況になりますでしょうか。
例:画面が真っ白になる等
お手数をお掛けいたしますが、お客様からのご連絡を
お待ちいたしております。
その他、ご不明な点がございましたら、ご連絡ください。
今後ともOCNサービスをよろしくお願いいたします。

OCNテクニカルサポート担当 高橋OCNテクニカルサポート担当 高橋 殿
 標記について、指示のとおり設定しました。
 例えば、http://t-sato.blog.ocn.ne.jp/ は表示は遅いけれども、待てばなんとか動きます。
 しかし、https://satotoshio.net/oldblog/my_housing/cat5484241/ は、常識的な時間内での表示はほとんど不可能で、マウスやキーの入力を受け付けなくなり、やがてブラウザのタイトルバーに「(応答なし)」が表示されます。かなり記事が多いのは確かですが、常軌を逸した量ではなく、事実、Twitterボタンを表示しないようにすれば、数秒で迅速にページの表示が完了します。
 なお、このように調査のために状況を再現している間、私のブログは正しく見ることはできません。
 こういうことは、ユーザの実運用環境をもって試すのではなく、そちらのしかるべきテスト環境などを用いて再現・検証すべきです。
 こちらは正しく月々の料金を支払っておりますので、状況が良くなるまでの日にちを勘定し、日割りで返金してください。

お客様

平素はOCNサービスをご利用いただき、誠にありがとうございます。
OCNテクニカルサポート担当 石橋と申します。

不在の担当 高橋に代わりご返信いたします。
たびたびのお問い合わせをいただき、大変お手数をおかけしております。

お問合せいただいております、記事のフッターに[Twitter]ボタンを
設置することで表示速度が遅くなる件についてご返信いたします。

弊社複数の環境より確認させていただいたところ、トップページ
(記事件数20件)は正常に表示されておりました。

また、お知らせいただいたURLはカテゴリーの「ピアノ」でよろしいで
しょうか。

こちらも弊社複数の環境で確認したところご申告の通り表示にかなり
時間がかかりました。

[Twitter]ボタンをフッターに表示させた場合、記事の末尾に
ツイートの件数を表示させるため、一件ずつ照会をかける為
1ページ内の記事数が多い場合は表示にお時間がかかります。

誠に申し訳ございませんが、1ページ内の記事数が多い為、表示時間に
影響がでているかと存じます。

お手数ですが、[Twitter]ボタンをフッターに表示させる場合は
現在ご利用しているカテゴリーを複数に分けてご利用いただきますよう
お願いいたします。

ご希望に添える回答とならず誠に申し訳ございません。

このたびのお問合せ内容はに関しましては、今後のサービスの改変に
役立てて参りたいと存じます。

なお、弊社担当より動作の確認のお願いをさせていただいたことによる、
表示動作の低下に関してご料金をお返しすることはできかねますので
何卒ご了承いただきますようお願い申し上げます。

今後ともお客様に快適にサービスをご利用いただけるよう、
社員一同努力して参りますので、末永く弊社OCNサービスを
よろしくお願い申し上げます。


OCNテクニカルサポート担当 石橋 殿

 佐藤と申します。

石橋殿 Wrote…
>なお、弊社担当より動作の確認のお願いをさせていただいたことによる、
>表示動作の低下に関してご料金をお返しすることはできかねますので
>何卒ご了承いただきますようお願い申し上げます。

こういうことでは、つまり、あなたがたのしていることは、

○ 私の訴えを、何ひとつ解決できなかった。
○ ただ単に、私のブログを使って、状況を確認しただけ。
○ しかも、私に手数をとらせた。

ということです。
そんなことで、よく「テクニカルサポート」などという大看板を上げていられるものです。

>一件ずつ照会をかける為
>1ページ内の記事数が多い場合は表示にお時間がかかります。

そんなことは私はとうに見て取っており、迷惑をこうむっていて、あなたにわざわざ教わらなくてもよくわかっております。

>このたびのお問合せ内容はに関しましては、今後のサービスの改変に
>役立てて参りたいと存じます。

「今後」というのは、具体的にどういう計画ですか?筋道だてて逐一、わかりやすくかつ速やかにご説明を願います。

Twitter API を OAuth認証で使う場合の勘所

投稿日:

 このテのエントリを書くのは、私には大変めずらしいことだが、備忘録がわりに書く。

 ツイッターAPIとOAuthをphpで使うのは、結局のところ、例えば「記事を書く場合」なら、

<?
$oauth =
  new OAuth("コンシューマキー", "コンシューマシークレット",
            OAUTH_SIG_METHOD_HMACSHA1,
            OAUTH_AUTH_TYPE_URI);
$oauth -> setToken("アクセストークン", "アクセストークンシークレット");
$oauth -> fetch("http://twitter.com/statuses/update.xml",

  array("status" => "ほげほげ"),
  OAUTH_HTTP_METHOD_POST);
?>

 ……というコードを実行させる、ということである。これで、ツイッターに「ほげほげ」と書き込まれる。

 それだけだ。それ以外に何もない。

 ただ、そこまでにいろいろとやることがある。

 まず、phpで「OAuth」オブジェクトが使えるようになっていなければならない。それを楽にセットするためにはpeclが動いていなければならない。今日現在はphpのOAuthはまだbetaであることにも注意が必要だ。

 そこで、

# yum install php-pear
  (途中出力及び対話略)
# yum install php-devel
  (途中出力及び対話略)
# yum install curl-devel
  (途中出力及び対話略)
# pecl install oauth-beta
  (途中出力及び対話略)
# echo ‘
extension=oauth.so
‘ >>/etc/php.ini
# /etc/rc.d/init.d/httpd restart
  (出力略)

 などとする。私の環境の場合だが、まあ、多分、どんな環境でも考え方は同じだろう。

 それから、ツイッターのコンシューマキーとコンシューマシークレットを取る。これには、ツイッターのフォームから申込む。

 この申し込みでは、「Application Type」に「Browser」を選び、「Callback URL」に公開サーバに置いたプログラムのURLを正しく入力する必要がある。他の欄は適当で良い。「Application Name」は日本語も大丈夫だから、オリジナリティあふれる、気に入った名前にするといいだろう。

 うまく申し込めば、画面が遷移し、コンシューマキーConsumer key、コンシューマシークレットConsumer secret、またその他の必要なAPIのURLが表示されるので、これをコピーして保存する。

 次にやることは、アクセストークンとアクセストークンシークレットを取ることだ。

 phpのマニュアルの中の「ウェブサービス」の項目の中に「OAuth」の項目があるから、それを見る。その中に、OAuthを使う一例がある。

これをコピーして、少しカスタマイズする。このカスタマイズの目的は、アクセストークンとアクセストークンシークレットをツイッターから貰い、それを表示させることにある。プログラムのファイル名は、あらかじめ「Callback URL」で申込んだものにする。私は次のようにカスタマイズした。

<?
//
//  oauth.php
//
$CONSUMER_KEY      = "取得したコンシューマキー";
$CONSUMER_SECRET   = "取得したコンシューマシークレット";
$REQUEST_TOKEN_URL = "http://twitter.com/oauth/request_token
";
$ACCESS_TOKEN_URL  = "http://twitter.com/oauth/access_token
";
$AUTHORIZE_URL     = "http://twitter.com/oauth/authorize
";
$TIMELINE_URL      = "http://twitter.com/statuses/home_timeline.xml";
//

session_start();
if(!isset($_GET[‘oauth_token’]) && $_SESSION[‘state’] == 1){
  $_SESSION[‘state’] = 0;
}
try {
  $oauth
    = new OAuth($CONSUMER_KEY, $CONSUMER_SECRET,
                OAUTH_SIG_METHOD_HMACSHA1,
                OAUTH_AUTH_TYPE_URI);
  $oauth->enableDebug();
  if(!isset($_GET[‘oauth_token’]) && !$_SESSION[‘state’]) {
    $request_token_info = $oauth -> getRequestToken($REQUEST_TOKEN_URL);
    $_SESSION[‘secret’] = $request_token_info[‘oauth_token_secret’];
    $_SESSION[‘state’] = 1;
    header(‘Location: ‘.$AUTHORIZE_URL.
      ‘?oauth_token=’.$request_token_info[‘oauth_token’]);
    exit;
  } else if($_SESSION[‘state’] == 1) {
    $oauth -> setToken($_GET[‘oauth_token’],$_SESSION[‘secret’]);
    $access_token_info = $oauth -> getAccessToken($ACCESS_TOKEN_URL);
    $_SESSION[‘state’] = 2;
    $_SESSION[‘token’] = $access_token_info[‘oauth_token’];
    $_SESSION[‘secret’] = $access_token_info[‘oauth_token_secret’];
  }
  echo "<p>ACCESS_TOKEN=".$_SESSION[‘token’]."\n";
  echo "<p>ACCESS_TOKEN_SECRET=".$_SESSION[‘secret’]."\n";
  echo "<p>\n";
  $oauth -> setToken($_SESSION[‘token’],$_SESSION[‘secret’]);
  $oauth->fetch($TIMELINE_URL);
  $xml = $oauth -> getLastResponse();
  print_r($xml);
} catch(OAuthException $E) {
  print_r($E);
}
?>

 これを「Callback URL」で申し込んでおいた公開サーバに正しく置く。

 次にこのファイルにブラウザでアクセスする。この時に、起動しているブラウザが先にあるなら、一旦全部終了させ、新しく起動したブラウザでアクセスすることをおすすめする。そうしないと、最初はいいが、2度目・3度目に失敗する。

 画面は一度ツイッターのサイトに遷移し、ユーザ名とパスワードを要求される。入力して「許可」のボタンをクリックすると、画面がまた遷移し、もとのスクリプトに帰ってくる。万事がうまくいっていれば、その時に「ACCESS_TOKEN=なになに・・・」「ACCESS_TOKEN_SECRET=なになに・・・」と表示され、その下にタイムラインが表示される。生XMLで表示されるかも知れないし、文字列がつながって表示されるかも知れない。それは環境による。うまく行かないときは、どこかが間違っている。

 この「ACCESS_TOKEN」と「ACCESS_TOKEN_SECRET」をコピーしてとっておく。

 本来ならば、「ACCESS_TOKEN」と「ACCESS_TOKEN_SECRET」は一定の期間で捨てられるので、このことはその都度その都度行わなければならないのだが、ツイッターは期限がないらしく、「ACCESS_TOKEN」と「ACCESS_TOKEN_SECRET」がずっと使える。

 これで、「コンシューマキー」「コンシューマシークレット」「アクセストークン」「アクセストークンシークレット」の4つが揃った。

 そこで、冒頭のコードとなる。冒頭のコードに得られた4つのパラメータをペーストして作動させれば、ツイッターに「ほげほげ」と書き込まれたことだろう。

 こうすることにより、自分のアプリケーション名をタイムラインに表示するなどできるようになる。

応用曲「エリーゼのために für Elise」その0.92

投稿日:

 「エリーゼのために」、Twitterでせっせと練習経過を呟きつつ練習中である。

 日曜朝の、3度目の演奏。

 ちょっぴりミスタッチしてるけど、まぁ、いいや。素人なんだし(笑)。

応用曲「エリーゼのために für Elise」その0.86

投稿日:

 今日も煙が出るほどせっせと「エリーゼのために」を練習しまくったのだが、これがまた、逆に下手になっていくような気がする始末。

 今日も録音成果は出せず。

 最近、通勤電車の手すさびにTwitterで遊ぶようになり、読書が減った。私の読書時間は主に通勤電車内のひと時をあてていたからだ。

意外と簡単に

投稿日:

 「ブログ人」は、ブログパーツなどは基本的に決まったものしか受け付けない。生のhtmlを自由自在に扱うのを少しやりづらくしてあるのだ。

 だから、ブログパーツガーデンにないパーツを貼り付けるのは、基本的にできないのだが、隙間はある。「私リスト」の中に、ものによっては生htmlを受け付けるところがあるのだ。

 私は、twitterのウィジェットをここで作り、「私リスト」の「メモ」のところに貼り付けた。意外と簡単にtwitterのウィジェットをサイドバーに表示できた。

twitterのいいところ

投稿日:

 twitterのいいところがやっと判った。

 言いっ放しでいいところだ。多くの、それこそスズメのtwitに紛れて、隠されるのだ。

 いやぁ、それだけのために1週間も費やしたぞ。俺の時間を返せ。

 ・・・まぁ、技術上は、別にどうってことないよね。多くのアクセスに耐えるサイトの運営、ってことを技術と言うなら、まぁ、それもそうだろうけど。

twitterを

投稿日:

 twitterをいろいろ試してみておかなくちゃ、と思い、通勤途上のことや飲み食いして旨いとか、2~3、適当に書いてみたのだが、うーん、・・・。

 チョイとしばらく使ってみなきゃ、良さはワカランかもなあ。

twitter

投稿日:

 「twitter」というのが流行っているようである。何がいいんだか悪いんだかサッパリわからないのだが、とにかく登録してみた。

 とにかく、Webがらみのことなら、何でも味見をしてみなくてはならない。