神風さんの呟きBlog

神風がその時々の新着情報について書いていくBlog

Twitter

Twitter設定 - PHP+OAuthで自動でフォロバをする。

2017/04/13

はい、お久しぶりです。神風です。

更新が随分滞ってしまっていました。

Twitterの仕様とかそういったものを調べて実行していましたよ。

やはり新しい情報は常に追いかけていないといけませんね。

さて、今回の記事です。

Twitterをやるとやはり皆さん、Followerを増やしたいですよね?

私の場合はこのBlogの露出を増やす為の宣伝に使おうと思って始めましたが、それでもやはり、フォロワーを増やすのは命題な訳です。

まぁ、それだけならこんな記事を書く必要はないんですが、最初は手動でちまちまとフォロワーを増やしていた訳です。

いきなり謎の外人軍団からのFollow爆撃

100程度のFollowerになった時です。

題名の通り、いきなり謎の外人軍団から大量のFollowを受けました。

主にアラビア語圏の方っぽいですね。

この連続Followの量は凄まじく、100程度のFollowerだったのが次の日には2000を超えるFollowerに達する事になりました。

秒単位で増えていくFollowerにFollow返しを行わなくてはいけません。

こんなの手動じゃ無理だろ!

私は早々に思いました。

手動で無理なら自動でやろう

という事で、Followを受けた人に自動でFollowを返そうと思います。

必要なもの

  • CronとPHPを使えるレンタルサーバー
  • 少しのPHPの知識
  • SMSを受信出来る電話(多分携帯だけかな?)

多分こんなもんだと思います。

つまり、PHPでFollowerを自動で取得して、Followしていないアカウントを自動でFollowするコードを書く。

そのコードを一定時間ごとに動かす様にCronで設定しておく。

それでは準備していきましょう。

自動化する為に、TwitterAppsに登録

はい。まずはPHPで該当アカウントに接続する為にTwitterAppsにアプリを登録します。

Twitter Apps

ここでアプリの登録をして、情報をテキストでもいいですが、保存しておきます。

詳しいやり方は以前の記事を参照して下さい。

こちら↓

WordPress設定 - Twitterに自動投稿する様に設定する Vol.3

例の情報を入手する為に、SMSが受信可能な電話番号が必要になる様です。

今はこういう手続きがないと発行されないんだよね。めんどくさいね。

必要な情報はこちら

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

この4つの情報をは後で使います、ちゃんと保存しておきましょう。

特に、情報を取得後に電話番号の登録を削除すると2度と情報を参照出来ません。やり直しになってしまうので、設定を済ますまでは絶対に紛失しない様に注意しましょう!

比較的簡単に動かしたい人向け

はい。難しい事は分からないけど、取り敢えず簡単に全自動でフォロバしたい!って人は私と同じXserverを契約して、この記事の通りにやれば動くと思うよ!

だって同じ環境ですし。

一応、Xserver置いておきますね。



 

Twitter APIを使い易くするライブラリを利用する

Twitter APIというモノがあります。

これはどういうものかと言うと、詳細に説明すると長くなってしまうので、簡単に。

つまり、普通にTwitterのサイトでやっている操作を外部のクライアントやソフトで出来る様にする橋渡しの役割を持ったもの。

という事です。

そしてこの、Twitter APIですが、結構な量のコードがあって、それを事細かく書き込んで指定してやらないといけない。

それはとても面倒臭いですよね?

なので、本当なら何行かコードを書いて操作するものを、合図一つで実行出来る様にしたものを集めたものがあるんです。

簡単に言えばそれがライブラリというものです。

人間で例えると、近くのコップを持ち上げて人に渡す、みたいな行動をさせようと思うとします。

それを何の合図も無く、全部手動でやろうとすると・・・

  • 右腕を持ち上げる
  • 右腕を斜め前に伸ばす
  • 右手を開く
  • 右手を開きながら右腕を斜め前に伸ばし続ける
  • コップに手が当たる2cm手前で止まる
  • 右手を閉じてコップを握る
  • 右腕を5cm持ち上げる
  • 自分の前に居る相手に向けて右腕を伸ばす
  • 相手に当たる30cm手前で右腕を伸ばすのを止める
  • 相手がコップを握ったら右手を開く
  • 右腕を自分の前に戻す
  • 右腕を自分の右側に下ろす

こうなります。でも、一つ合図があると・・・

「そこのコップ取って」

これで終わりですよね?

こういった色々な操作を一言で済ませてくれるのがライブラリです。

便利でしょ?

これがあると、Twitter APIを使う上でも認証とか、手動でやると非常に面倒な事を情報を書くだけでやってくれます。

早速入れましょう。

GitHub - TwitterOauthライブラリ

↓クリックで開きます↓

真ん中辺りにある「Clone or download」というボタンをクリック、ZIPでダウンロードします。

解凍するとこんな感じ。

↓クリックで開きます↓

これをそのままサーバーにUploadすると色々と問題が起きてしまいます。

何故かといいますと、文字コードの問題があります。

他のレンタルサーバーの仕様は違うかも知れません、でも私が契約しおているのはエックスサーバーなので、エックスサーバーに合った仕様でやっていきます。

別のレンタルサーバーを使用している方はご自分の契約しているサーバーの仕様に合わせてやればいいと思うよ。

PHPでスクリプトを組む場合ですが、私の仕様では文字コードはBOM無しUTF-8に統一します。

このBOM無しというのが結構重要。

PHPのコードを書く場合ですが、最初にPHPで書いてるよ!って宣言するんですね?

つまり、

<?php ~なんちゃら~ って書いてこの括弧内はphpのコードですよ、って相手に教える訳です。

勿論、最後は ~なんちゃら~ ?>で終ります。

これがPHPのルールなんです、この括弧の外側にはコードを書いてはいけないルールです。

そして、先程のBOMの話です。

BOMがある文字コードだと、ファイルの一番最初にBOMが入る様です。

このBOMがPHPの基本ルールに違反してしまうんですねぇ。

なので、BOM無しにしなくてはいけません。他の文字コードは知らない。

なので、後々に問題が起きない様、今のうちに文字コードを直してしまいます。

私がよく使ってるテキストエディタは「TeraPad」というソフトではちょっとやり方があります。

このソフトでは、BOM無しUTF-8は「UTF-8N」という表記になっています。

ついでに改行コードも「LN」で統一してしまいます。

という事で、今後当サイトでPHPコードを作成する時は下記で統一します。

  • 文字コードはBOM無しUTF-8の「UTF-8N」
  • 改行コードは「LN」

という事で宜しくお願いします。

サーバーにUploadする

ここでいくつか注意点があります。

  • Twitterで使う専用のフォルダを作成して、その中に丸ごとUploadする。
  • .htaccessを使ってブラウザからアクセス出来ない様にしておく。

まぁ、他にもあるかも知れないけど、今の所すぐやらないといけないのはこの2点。

最初のは、折角のレンタルサーバー。Twitter専用で使う訳でもないですから。

次のは、Twitter APIを使うのに、先程取得した情報を書き込む訳です。

その情報があれば、自分のTwitterアカウントを好きに操作出来てしまう訳ですよね。

そんな情報が普通に外部からアクセス可能だったらどうでしょうか?

見ず知らずの人に情報を盗み見されて、自分のアカウントが乗っ取られてしまいます。

なので、.htaccessを使用して外部から絶対に参照出来ない様にしておかなければなりません。

ここはUploadしたらすぐにやりましょう。後で「忘れてた!」じゃあ済まないですよ?

全自動Follow返しするPHPを作成

はい。ここまではPHPを作成する前の準備でしたね。

ここからが本番、実際に全自動でFollowを返すPHPファイルを書いていきます。

autofollow.php」とでもしておきましょうか。

上記のコードにも書いてありますが、TwitterAppsで取得した情報を「config.php」に書いてあります。

まぁ、.htaccessで制限している中で効果があるかは甚だ疑問でもありますけど。

config.php」はこうします。

こうします。

何故こうしているかと言いますと、一応理由があります。

それは、CronをPHPを置いたサーバーと別の所で実行する場合に簡単に設定する為なんです。

先程書いた「autofollow.php」にTwitterAppsの情報を直接書き込むとします。

そして、.htaccessで外部からアクセス出来ない様にしますよね?

そうしたら、別のサーバーからCronを実行しようと思ってもアクセス出来なくなってしまいます。

ですが、情報を他のファイル「config.php」に書いた場合はどうでしょう?

この場合は.htaccessで「config.php」だけをアクセス制限する事で、大事な情報は守りつつ、Cronを外部から行う事が可能になります。

一応、他の環境で動かす方も居るでしょうから、こういう書き方をしています。

この2つのファイルは先程Uploadしたライブラリのフォルダと同じ場所にUploadします。

置き場所を変更する場合はパスを変更して使って下さい。

Cron(クーロン)で一定時間で自動で動く様にする

Xserverのサーバーパネルへ行きます。

↓クリックで開きます↓

ホームページ」のタブにある、「Cron設定」を押します。

↓クリックで開きます↓

Cronの追加」タブを押して、UploadしたPHPコードを一定時間で自動的に動かす様にします。

今回は15分ごとにFollowされたアカウントにFollowを返す様にしましょう。

  • 分 - */15
  • 時間 - *
  • 日 - *
  • 月 - *
  • 曜日 - *

この「*(アスタリスク)」は、全ての条件、という意味があります。必ず入れましょう。

入れないと、条件が設定されていないと見なされて、動いてくれません。

まぁ、何か入力しないと設定出来ない様になってるみたいですが。

そして次の「コマンド」です。

ここがXserverではちょっと特殊です。

Xserverでは、PHPのバージョンごとにPHPのパスを指定してあげないといけない様です。

XserverのPHPのバーションごとのパスはこちら

Xserverマニュアル - プログラム言語・コマンドパス

自分が使っているPHPのバージョンを確認しましょう。

そして、このパスを入力した後に半角スペースを入れて、動かすPHPファイルのパスを入れます。

例:PHPのバージョン7.0、phpファイルの置き場所twitterフォルダの中。

/usr/bin/php7.0 /home/(Xserverの自分のユーザーID)/(自分のドメイン)/public_html/twitter/autofollow.php

こうなります。各自自分の環境に合わせて変更しましょう。

そしてコメントに分かりやすい説明でも入れておきましょう。

最後に下の「CRONの追加」ボタンを押して設定しましょう。

自動Follow返しのphpが動いてるか見る

Xserverの先程のCron設定の部分、「Cron結果の通知アドレス」に自分が使ってるメールアドレスを入力します。まぁ、何でもいいですよ、フリーアドレスでも大丈夫です。

正常に稼動している事が確認出来ればこの設定は外します。

動く度に「動きました!」みたいな確認メールが来るのでウザい事この上ないですし^ ^;

因みに、正常に動いた場合はこういったメールが来ます。

X-Powered-By: PHP/7.0.0
Content-type: text/html; charset=UTF-8

お疲れ様でした。

-Twitter
-, , ,