このエントリーをはてなブックマークに追加
スポンサーリンク

2016年1月5日 PHPからツイッターに送信

ツイッターを見ていると、診断メーカーとかアプリメーカーとかで、サーバーから自動的にツイッターに送信するサイトがあるようで、じゃあ自分もそういうのを作ろうと思った。

検索すると、ツイッターは API1.1ってのがあって、このAPIを通す事で、スクリプトからツイートを取得したり、送信したりできるみたいだ。

で、API1.1の使い方を調べたが、

https://dev.twitter.com/rest/public

ううむ・・・マニュアルが英語だ。全然読めん・・・。困ったな。いや、全く読めないというわけではないが、英語はあまり得意ではないのでな。

Linuxのサーバー管理の仕事やってると、apacheにしろPostgreSQLにしろ説明書が英語だから困ったのだが、検索すると大抵は日本人が説明してくれるサイトがあるので助かる。というより、そういう人がいなければ、コンピューター関係の学校も何も出てない自分が独学でサーバー管理の仕事なんかやれなかっただろう。

英語を読むのはあきらめて、日本人が説明してくれているサイトはないものかと調べたら、ありましたよ。

http://qiita.com/sofpyon/items/982fe3a9ccebd8702867

いや、これは助かります。英語のサイトだけだったらあきらめてる所でした。

これによると、

https://twitteroauth.com/

というところで、PHP向けのライブラリが公開されているので、さっそく使ってみる。

そしたら、なんと、Parse error: syntax error連発。なんだよ、これ、使えねーな((C)乾巧)・・・と思ったけど、何がエラーなのかと思って調べたら、 [] と書いてある所が全部エラーだ。

しかし、世の中便利なもので、「TwitterOAuth Parse error: syntax error」で検索したら、原因判明。配列を初期化するのに、従来なら array() と書いたのが、今のPHPのバージョンだと [] と書けるそうで。

じゃあPHPのバージョンを上げればいいんじゃね?というかもしれんが、自分の作ったPHPプログラムは、

register_global = on
magic_quotes_sybase = on

を前提として作ってあって、バージョンをあげるとそこら辺を全部直さないといけないわけですよ。いや、全部直せばいいんだけど、けっこうな量だからなぁ。

だいたい、PHPにしろPostgreSQLにしろ、互換性のない変更が多すぎるんだよね。PostgreSQLだと、大きい変更といえば、INT型に空文字列(')を入れるとNULLとみなされるのを廃止、¥マークをエスケープ文字として使えるようにするのを廃止、オブジェクトIDの廃止、PHPだと、register_global 、magic_quotes_sybase の廃止、short_open_tagは常にオン、などなど。

せめてオプションで互換性を保てるようにしてくれればいいのに。自分のサーバーだからまだいいけど、これが仕事だと会社のいままでの資産全部直すなんてわけにもいかんからな。今実際に稼働してるサーバーで、PHPのバージョンを上げるので今使ってるプログラム全部使えませんってわけにもいかんし。

いずれも今の仕様の方が正しい仕様なんだけど、だったら最初からそうしろと。

って事で、[]と書いてある部分を都度、array()に書き直す。これがけっこうな量で大変。かといって、自分でAPI 1.1の英語のマニュアル読んで自分でAPIとやりとりする部分を作るのも面倒だしなぁ。

エラーになる部分を全部古い書き方に直して、とりあえず検索でヒットしたサイトにサンプルをコピペして動かしてみる。

・・・動いた。動いてしまった。え?動いちゃいけないのかって??だって、どうせ仕事してないんだから、1年がかりだろうが2年がかりだろうが、長い時間をかけてじっくりやるつもりだったのに、ほんの数時間で動いちゃうとは思わなかったじゃない。

そりゃ、自分でAPI 1.1の英語のマニュアル読んで自分でツイッターに書き込む関数まで作れば1年がかりになるんでしょうけど、せっかくネットでもうツイッターに書き込む関数が公開されてるのに使わない手はないでしょう。


 △先頭へ  コメント(0)  トラックバック(0)  拍手(0)

スポンサーリンク