破壊的にときめく?日記ブログでタグ「API」が付けられているもの

Twitter APIが新しくなってから放置していて忘れてしまったのでメモ。
他色々検索すると例が出てくるけど、もうちとシンプルにならないものかと思いまして。 PEAR::OAuthとPEAR::JSONを使ってます。 phpのjson関数が使えればよかったのですけれど、WebArenaのPHPには実装されていませんでしたので。
movable typeにSyntaxHighlighterプラグイン入れることが出来るみたいでトライしてみたけど、MTのヴァージョンが古いから?かなんかうまくいかなかった。そんな所の検証も込めて
TwitterでConsumer KeyとSecretを取得して、以下のソースをコピペって設定すれば、簡単にTwitter APIが利用できるようになるはず......多分(^^;;;
<?php
// PEAR::OAuthとPEAR:;JSONを利用したTwitter OAuth実行例
//
// Twitter My Application作成ページ: https://dev.twitter.com/apps
// Twitter REST API 1.1: https://dev.twitter.com/docs/api/1.1
require_once('HTTP/OAuth/Consumer.php');
require_once('Services/JSON.php');

// twitterで作成されたconsumer_key
$consumer_key='xxxxxxxxxxxxxxxxxxx';
// twitterで作成されたconsumer_secret
$consumer_secret='XXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$get_access_token_url='https://api.twitter.com/oauth/access_token';
$request_token_url='https://api.twitter.com/oauth/request_token';
$authorize_url='https://api.twitter.com/oauth/authorize';
// 自分自身のURLを設定
$callback_url='yyyyyyyyyyyyyyyyyyyyy';

// セッション開始
session_start();
// HTTP OAuthコンシューマを生成
$consumer=new HTTP_OAuth_Consumer($consumer_key,$consumer_secret);
// SSL通信を可能にする
$http_request=new HTTP_Request2();
$http_request->setConfig("ssl_verify_peer",FALSE);
$consumer_request=new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);
// access_tokenとaccess_token_secretを取得してないなら......
if((isset($_SESSION['access_token'])!=TRUE)||
	(isset($_SESSION['access_token_secret'])!=TRUE)){
	if(isset($_GET['oauth_verifier'])==TRUE){
	// oauth_verifierが貰えてたら、access_tokenとaccess_token_secretを取得しセッションに保存
		$consumer->setToken($_SESSION['request_token']);
		$consumer->setTokenSecret($_SESSION['request_token_secret']);
		$consumer->getAccessToken($get_access_token_url,$_GET['oauth_verifier']);
		$_SESSION['access_token']=$consumer->getToken();
		$_SESSION['access_token_secret']=$consumer->getTokenSecret();
	}else{
	// oauth_verifyが貰えてなければ、twitter認証ページに遷移しoauth_verifierを貰う
		$consumer->getRequestToken($request_token_url,
			$callback_url);
		$_SESSION['request_token']=$consumer->getToken();
		$_SESSION['request_token_secret']=$consumer->getTokenSecret();
		$auth_url=$consumer->getAuthorizeUrl($authorize_url);
		header("Location: ".$auth_url);
	}
}
// access_tokenとaccess_token_secretを取得済み(認証済みAPIが使える状態)
// 後はご自由に......
// 例 : Account/VerifyCredentialでスクリーン名を取得
// 要求に先立ってもらったaccess_tokenとaccess_token_secretを設定
$consumer->setToken($_SESSION['access_token']);
$consumer->setTokenSecret($_SESSION['access_token_secret']);
$response=$consumer->sendRequest("https://api.twitter.com/1.1/account/verify_credentials.json",
	array(),"GET"); // 第2引数にパラメータを設定、この関数では空array(NULLではダメ)
if($response){
// PEAR::Service_JSONを利用してJSONをデコード (WebArenaのPHPではjson関数が使えなかったから(´・ω・`)
	$json=new Services_JSON();
	if($json!=null){
	// デコードするのはBODY部分:ここ大事
		$resultData=$json->decode($response->getBody());
		if($resultData){
			echo $resultData->screen_name;
		}
	}
}
?>
そんなこんなで過去作ったものをぼちぼち再起動できるように修正中
やっぱなんかSyntaxHighlighter効いてないや
MovableTypeからWordPressにブログも移動したいんだけどね~面倒くさい
APIを利用して過去データが見られるようにしてみた。
但しモニタリングポストのものは停電の影響からか2011/04/04からでないと取得できません。 "jQuery"UIの"DatePicker"を利用したかったので、AJAXは"jQuery"ベースで記述
過去に作ったGoogleMaps多マーカー埋め込みツールをうまく利用

福島第一・第二原子力発電所 モニタリングポスト空間線量率 過去データ取得 [Ajax:jQuery]

複数日指定でグラフ表示出来ますけど、1日で最大144*15+48*3=2304点をプロットするので、とっても重たいと思うので1日単位指定になってます。
また、福島第一のモニタリングカーの情報(固定点ではない)をうまく可視化したいところですが、 この頃はひとところ(西門)にとどまっているような状況をマップにどう見せるか、また移動している状態で1つのグラフにプロットするのはあんまり良くないなぁと。

この頃全然Google MAps APIの動向を見てないですが、マーカークリックでウィンドウが開くのではなくて、マーカー自身に情報を動的に埋め込みたいなぁ。やれば出来ますけど現状とっても面倒臭い。
今日で東日本大震災から2ヶ月、本当にあっという間ですよね。

自作の東京電力 東日本大震災後の福島第一・第二原子力発電所の状況 構内計測データAPIを利用して昨日の状況をグラフ化したのがこれ

福島第一原子力発電所の状況 構内計測データ(昨日)

福島第二原子力発電所の状況 構内計測データ(昨日)

馬鹿正直に全てのデータをプロットしているので、表示が重たくなったと思いますがお許しを。
少しずつ減ってきているようには感じられますが、こうして2つ並べてみると、福島第一原子力発電所と福島第二原子力発電所のデータとでは桁が違うのが良くわかります。

常設のモニタリングポストの取得間隔(10分単位)をベースにしているので、仮設ポストなどのデータは横線が離散的になります。それ以外で離散的になっているのは、東京電力が発表しているデータが無い場合などです。
あんまり変化無くて面白くないかもしれませんが......
過去のデータも日時指定により動的にグラフ化できます。
東京電力 東日本大震災後の福島第一・第二原子力発電所の状況 構内計測データAPIドキュメントを作成しました。
どちらかというとAP作成は苦手なもので、今回は裏方に回る予定ですが、例としてグラフ化などはこれを利用して作ってみたいと思ってます。
サーバ負荷の関係上、取得日数に制限(7日)をかけています。しばらく様子を見てこの辺りはチューニングを施す予定でもあります。 このAPIを利用して素晴らしいアプリケーションを作ってくれる方がいらっしゃいましたら私はうれしいですし、東京電力がデータを公表し続ける限り、責任を持って面倒みますので、どうぞ宜しくお願いいたします。

慈善事業ですので、もちろん無料、承認も要りません。
「私に出来ることをしよう!」というコンセプトで東京電力のページにある「東日本大震災後の福島第一・第二原子力発電所の状況」をAPI化の最初のヴァージョンがとりあえず完成。
本当に出来ているのかという意味で、一番簡単なテーブルで取得した結果を表示してみました。
これだけだと何が違うのかわかりにくいと思いますが、東京電力のページにあるPDFやZIPをダウンロードしてHTMLに書き換えてアップしているわけではなく、場所や日時を指定するとデータが取得できるというものになってます。昨日というところがミソですね
元データが何時頃にアップされるかが定かでないので、安全を期すため少し時間を遡ったデータを取得しているというわけです。このあたりは頑張ってもらうしかない。
あともういい加減、毎日のデータファイルの名前規則くらい統一して欲しいところ。24時までのデータのファイル名に含まれる時間部分、23なのか24なのか00なのか日時だけなのか。

東京電力のページの内容と比べてみてください。
ドキュメント等は来週アップする予定です。

カレンダー

<   2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

今度の予定

2014/01/03-04 大洗
2014/02/15 茅原実里FCイベント

ウェブページ

月別 アーカイブ

Powered by Movable Type 4.1

タグ

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

全国電力使用状況

旧旧ページ跡地