Dancing★Onigiriを中心に雑多なことをやってるサイトです。

※現在サイト引越し工事中です。


Twitterアイコン芸人用セット
2017/04/18(火) 制作物 ,

Twitterアイコン芸人用セット
(ZIPファイル)

PHPで制作
Twitterのアイコンを時間で自動的に変更します。

PHPを使用するTwitterBOTの技術をコピペ応用して作ったものです。

元々はRolling icon っていうサービスを使おうとしていたんですが、
いざ使ってみたところサーバーが貧弱過ぎるのか
しょっちゅうサーバーに繋がらず、アイコン自動変更も
10回に1回ぐらいしか動いてないという体たらくでして(ry
で、次に目をつけたのがIFTTTというサービス。
こちらだと指定時間にキッチリアイコン変更してくれるのですが、
時間でのトリガー作るのがめんどくさすぎる上に、
ランダムで画像を選ぶことが出来ない仕様だったので
使えん奴ばかりか!と、ブチ切れて作りました(ry

実際にどんな感じなのよ?っていう方も多いと思うので、
デモ版ページを用意してあります。試しに触ってみてください。



使い方

まずはPHPを動かせるサーバーを用意します。
無料でかつPHPを動かせるレンタルサーバーだとこの辺が候補かと。
ちなみに自分は@PAGESを借りています。

SiteMix(サイトミックス)

TOK2.com

Xdomain(エックスドメイン)

@PAGES ※17/03/21現在新規登録受付停止中


用意できましたら、芸人セットをDLしてください。
好きな場所に解凍してかまいません。
アップロードする時に探しやすい場所にでも保存してください。


ZIPを開いたら、中にあるsetting.phpというファイルを
メモ帳なりで開いてください。

$screen_name = “”; // TwitterID
$consumer_key = “”; // Consumer keyの値
$consumer_secret = “”; // Consumer secretの値
$access_token = “”; // Access Tokenの値
$access_token_secret = “”; // Access Token Secretの値


中にこんな記述があると思います。
ここにbotを動かすためのTwitterAPIを入力していかなくてはなりません。
Twitter Apps

TwitterAPIってなんじゃらほい?って人は
こちらが参考になると思います。
Twitter API Key を取得する方法 – phiary



というわけで書き込めたら、もうひとつ必要なものをDLします。
Twitterへのデータの送信を行うために、UltimateOAuthを導入します。
GitHub – UltimateOAuth

右側にあるClone or downloadというボタンから
ZIPファイルをDLできるはずなので、
適当な場所に解凍してください。

中に「UltimateOAuth.php」というファイルがあるので、
これを芸人セットと同じフォルダに入れてください。
icon.phpと同じ階層においてあればOKです。



さて、用意できましたら借りたサーバーにアップしていきます。

この時に非常に重要な注意なのですが、
アイコンツール用に「ユニークで予想しづらい名前を付けたフォルダ」
を作って、そこにアップロードしてください。
というのも、このシステムかなり厄介な代物でして、
「ページURLにアクセスしたらPHPを通じて実行する」
と言う動きをするのですが、これが困ったことに
誰がアクセスしても実行するようになっています。

もしこれの動いてるページアドレスが
悪意のある人にバレてしまった場合
APIの制限かかるまでbotシステムを暴走させられたり、
このアイコン変更ツールの場合は
画像のアップロードや削除も出来る用に作ってあるため、
最悪の場合、画像フォルダがやりたい放題されます。

実際に、かの有名な修造botが被害にあった例がこちら。
EasyBotterが勝手に動作させられる可能性とその対策

昨夜からの修造botの大暴走の理由と、中の人による緊急停止への経緯まとめ

この通り、セキュリティ面で非常に繊細なものなので
APIkeyやアドレスは厳重に取り扱うようにお願い致しますm(_ _)m



さて、アップロードは終わったでしょうか。

こんな感じでサーバーにアップできていればOKです。

これでicon.phpにアクセスして表示されていればOKです。
(ちなみにさっきも言ったセキュリティの観点から、
 icon.phpのファイル名を変えてもいいでしょう)
この時点でもアイコン管理に結構便利なツールだと
我ながら思うのですが(ナルシスト)
このシステムはここからが本番です。

このツールは「phpにアクセスしたら発動する」というものだと
先程言いましたが、お察しの通りこのままでは
「1日毎に自動で変更する」ということは出来ません。
手動で1日一回アクセスするなら話は別ですが(ry

Cronつきレンタルサーバーを借りるのが話が一番早いのですが、
現実問題としてそこまで至れり尽くせりなレンタルサーバは中々ないです。

そこで登場するのが、「勝手にURLを叩いてくれるWEBサービス」です。
「誰がアクセスしても発動する」と、これも先程言いましたが、
ここで逆手に取るわけですね。

というわけで設定していきましょう。


記事を書いた現在では、このサービスを使うのがいいでしょう。
Google Apps Script

使い方はこちらのページを参考にしてください(ぶん投げ)
無料でお手軽Cron!Google Apps Scriptを使ってみる

あとはエディタに
function myFunction() {
UrlFetchApp.fetch(“http://ほんにゃか/フォルダ階層/icon.php?mode=api”);
}


と書き込めばOKです。ここでicon.phpの後ろに「?mode=api」とつけるのがミソ。
これでicon.phpにアクセスした時に「APIモードね、了解」って感じで
アイコン自動変更するようにicon.phpページ側で勝手に動いてくれます。



あとは画像フォルダにアイコンにしたいファイルを
じゃんじゃんアップしていってください。
5月14日だけこのアイコンにしたい!って場合は「xx-05-14」
みたいな名前のフォルダを作ってください。
また、毎月25日だけ略 って場合は「xx-xx-25」って感じです。
条件がマッチした場合その日のフォルダを見てそこからランダムで決めます。
詳しくは見本を見て(丸投げ)
この日の○○時だけこのアイコン!とか、
月日だけでなく時間まで条件分岐を作る気力はなかったので
その辺は我慢するか自分でソース改造してください(ry



参考文献

TwitterAPI関連

Twitter Apps
Twitter API Key を取得する方法 – phiary

TwitterBot関連

PHP + OAuthで Twitter botをつくってみよう
EasyBotter – プログラミングができなくても作れるTwitter botの作り方
無料でお手軽Cron!Google Apps Scriptを使ってみる

UltimateOAuth関連

GitHub – UltimateOAuth
Pastebin.com – A GUEST/Untitled

PHPプログラム関連

ファイル入出力 | PHP Labo
ファイルのアップロード | PHP Labo

デモ版ページにてアイコン使用

Pixiv | おみなえし
如月草紙 | 如月ツヴァヰ


コメント