TwistOAuthでイカのレギュラーマッチの現在のステージをツイートする。

API初心者ですhttp://splapi.retrorocket.biz/こちらのサイトにあるデータを使… – Yahoo!知恵袋
APIってなんだろう…。Win32APIのことでしたらこちらの動画がチュートリアルとして最適です。
【プログラミング】テトリスを1時間強で作ってみた【実況解説】 – ニコニコ動画:GINZA

splapiが返却するのはただのJSONなので、Web APIどうこうはもはや関係ない気がしましたがどうなんでしょうか。
まずググりながら素のJSON操作→ほしい箇所だけechoするところから始めて、次にTwitterにテスト文字列をツイートして、そこまでできたら下のサンプル読んでみてほしいなぁ、と思いました。

PHPからツイートするのには以下のライブラリがとても便利でした。pharを1ファイルDLで済むのと、それと例外処理でかゆいところに手が届くのが素晴らしいです。(Twitter API自体例外発生時のエラーレスポンスめちゃくちゃなので)
mpyw/TwistOAuth: Advanced PHP Twitter library. (Launched branch v3.x and released stable 3.5.2)
普段Perl使ってるし、PHPはWordPress専用言語だと思ってるので、PHPからTwitter API使うことはもうなさそうですが、機会があればまた使ってみようと思います。(PHP自体使わなすぎてブログカテゴリすら存在しない)

実行マシンはRaspberry Pi2 Model B(OSはraspbian wheezy)を使いました。phpのバージョンは以下。

 xxx@raspberrypi ⮀ ~ ⮀ php -v
PHP 5.4.45-0+deb7u2 (cli) (built: Oct 27 2015 23:22:07)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

注意点として、実行時にPHP Fatal error: Call to undefined function curl_init() が出てしまう場合は、php5-curlをインストールする必要があることくらいでしょうか。
私の環境では上記エラー解消後すぐ動きました。

<?php
 
require_once 'TwistOAuth.phar';
 
define('CONSUMER_KEY', 'xxx');
define('CONSUMER_SECRET', 'xxx');
define('ACCESS_TOKEN', 'xxx');
define('ACCESS_TOKEN_SECRET', 'xxx');
 
// ツイート用オブジェクト作成
try {
    $to = new TwistOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
}
catch (TwistException $e) { 
    echo $e->getMessage() . "n";
}
 
// JSON取得
$url = 'http://splapi.retrorocket.biz/regular/now';
$json = file_get_contents($url);
 
// 配列化
$array = json_decode($json,true);
$map_array = $array['result'][0]['maps'];
 
// ツイート用文字列作成
$tweet_string = '【現在のレギュラーマッチステージ】';
foreach( $map_array as $value ){
    $tweet_string = $tweet_string ."n". $value;
}
echo $tweet_string; 
 
// ツイート
try {
    $to->post('statuses/update', ['status' => $tweet_string]);
} catch (TwistException $e) { 
    echo $e->getMessage() . "n";
}
 
?>

知恵袋に回答してるカテゴリマスターさんが色んな意味で香ばしくてすごかったです。ある程度香ばしくないと起業とか経営ってできないのかもしれないですね。

コメントを残す