サイトを少し修正した(twitteroauth.phpのAPI 1.1対応化,DISQUS導入,雑記帳研究室のテーマ変更とか…)
面倒だったがなんか色々と問題点が発生したのでサイトを変更したことのメモ。twitteroauth.phpのAPI 1.1対応化,DISQUS導入,雑記帳研究室のテーマ変更とか…
サイトを少し修正した(twitteroauth.phpのAPI 1.1対応化,DISQUS導入,雑記帳研究室のテーマ変更とか…)
久しぶりにサイトを少し修正しました。
サイトの記事を作る時間もそこまであるわけではないので余計なことに時間は使いたくないのですが、間もなくTwitterのAPIが1.1になるしWordPressには毎日スパムコメントが来るし…といった感じでどうしても対応せざるを得ない状況になってしまった。
サイトの更新をTwitterに投稿するためにtwitteroauth.phpの0.2.0を使っているが、更新が長い間止まっているのでAPI 1.1に対応していなく、間もなくAPI 1.0が使えなくなるので一部修正。
プログラムによっては修正個所が多くなることもあると思いますが、投稿したりツイートの一覧を取得する程度の仕様だったのでほとんど変更せずに完了。
<?php
/*
* Abraham Williams (abraham@abrah.am) http://abrah.am
*
* The first PHP Library to support OAuth for Twitter's REST API.
*/
/* Load OAuth lib. You can find it at http://oauth.net */
require_once('OAuth.php');
/**
* Twitter OAuth class
*/
class TwitterOAuth {
/* Contains the last HTTP status code returned. */
public $http_code;
/* Contains the last API call. */
public $url;
/* Set up the API root URL. */
public $host = "https://api.twitter.com/1.1/";
/* Set timeout default. */
public $timeout = 30;
/* Set connect timeout. */
public $connecttimeout = 30;
/* Verify SSL Cert. */
public $ssl_verifypeer = FALSE;
/* Respons format. */
public $format = 'json';
/* Decode returned json data. */
public $decode_json = TRUE;
/* Contains the last HTTP headers returned. */
public $http_info;
/* Set the useragnet. */
public $useragent = 'TwitterOAuth v0.2.0-beta2 (compatible with API 1.1)';
/* Immediately retry the API call if the response was not successful. */
//public $retry = TRUE;
# 以下、省略
投稿部分はこんな感じで修正。
<?php
// 修正前
// $res = $objTO->OauthRequest( "http://api.twitter.com/1/statuses/update.xml", "POST", array( "status" => $create_text ) );
// 修正後
$res = $objTO->OauthRequest( "https://api.twitter.com/1.1/statuses/update.json", "POST", array( "status" => $create_text ) );
?>
で、自分のツイートを読み込む部分はこんな感じで。
<?php
// 修正前
// $res = $objTO->OAuthRequest( "https://api.twitter.com/1/statuses/user_timeline.xml", "GET", array( "count"=>"100" ) );
// 修正後
$res = $objTO->OAuthRequest( "https://api.twitter.com/1.1/statuses/user_timeline.json", "GET", array( "count"=>"100" ) );
?>
これは一例ですが、基本的にAPIの部分を1から1.1にして、XML形式が廃止になるのでjsonに置き換えるだけ(今までXMLで取得していた場合)なので、コードの大半が使えなくなるってことはないかと。
より細かい情報は公式の仕様を読んだり、専門にまとめているサイトを見たりしてください。
ただ、問題だったのは、今までXML形式で取得したものをsimplexml_load_stringで扱っていたのでjson形式に変更したら(コード上)いくつか動かなくなってしまったところがあった点。
# 普通こういうことがあるのかは不明
一応今まで通り動いているようなので対応は終了したとみなした。
見ての通り雑記帳研究室(このコンテンツ)はWordPressで運営していますが、ここ最近毎日複数のスパムコメント(英語;おそらく海外)が書き込まれて対応が面倒になってきたのでどうにかしようということでDISQUSを導入。
導入自体は非常に簡単なのでその段階までは問題なかったものの、新規のアカウントでは言語で日本語を選択できないという罠が…
※そのあたりについては検索すれば情報が出てきます
現状では古くからあるアカウントを除いて、日本語表記にすることは出来ないので諦めるしかないようです。
そのため、結果的にコメント欄の説明文などが英語での運用となってしまいました。
で、ついでに雑記帳研究室のテーマも変更しました。
スマートフォン等でアクセスした場合に表示されるサイトのデザインも変更しました。
相変わらず管理人が自分自身でテーマを作るのは非常に面倒…いや、技術力がないので諦めて配布されているテーマを使用していますが。
表示等に問題はないと思いますが、何かあればメールフォームがTwitter等でお知らせください。
Twitterといえば、PC雑記帳のTwitterアカウントの説明文が1年ぐらい仮運用扱いになっていたのでその部分を外しておきました。
意味ないけど。
とりあえずサイトの修正というかメンテナンスみたいなものは完了したと(強制的に)みなして、今度はサイトの記事を更新したいと思っています。
今回はこの辺で。
では、また…