PHP
Linux
TwitterAPI

twitter developer に登録したのでやったことを書く

英文300字程度がだるくて腐っていたがすげー適当でも通った

投稿とかも公式に載っているライブラリを使うとものすごく簡単


やったこと


  1. twitter developerへの登録、app作成

  2. 超絶シンプルなツイート投稿、自動いいね機能(php)

  3. raspberry piで投稿を自動化


1.twitter developerへの登録、app作成

https://developer.twitter.com/en.html

ここでdeveloper登録。

英文での使用用途の説明を求められるが、google翻訳を通した後、軽く確認しただけで通った。

apiを作成した後、Detail->Keys and tokensで API key API secret key Access token Access token secretの4つを確認しておく(後で使う)


2.超絶シンプルなツイート投稿、自動いいね機能(php)

https://developer.twitter.com/en/docs/developer-utilities/twitter-libraries.html

ここからapi利用の認証を通すためのライブラリをダウンロード。今回はtwitterOauthを使った。

下部phpファイルとダウンロードしたファイルを同階層に配置。


<?php
// OAuthライブラリを読み込む
require "twitteroauth-master/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

//個別の認証情報
$consumerKey = "API KEY";
$consumerSecret = "API SECRET KEY";
$accessToken = "ACCESS TOKEN";
$accessTokenSecret = "ACCESS TOKEN SECRET";

//接続
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

//投稿
$res = $connection->post("statuses/update", array("status" => "ツイート内容"));

//検索
$statuses = $connection->get("search/tweets", ["q" => "検索したいキーワード"]);

//検索で取得したデータの確認
print_r($statuses);

//いいね
$connection->post('favorites/create', ['id' => "ツイートのid"]);

※各所はお好みで

phpファイルは実行するとすぐにいいねや投稿を行うので実行前によく確認したほうがいい


3.raspberry piで投稿を自動化

cronという面白い機能がraspbianでも使えそうなので使ってみることにした。

linuxの機能らしい。

php,php-curl(エラーが出たので追加)のインストール、apache2もついでにインストール。

cronログの有効化

linux上crontab -eでcron設定ファイルを開き一番下の行に以下の文を追加

#毎日8時に指定したphpファイルを実行

00 8 * * * php /home/"ユーザー名"/"phpファイル"

raspbianの時計を日本時間に合わせて置く。


所感

もともとはherokuにプログラムを上げて定期実行させようと思っていたが、herokuは無料の範囲の利用だと常時稼働が面倒臭そうだったので、家で放置されていたraspberry piを使った。

予想以上にcronが便利で感動した。

この後はphpを書き込んでいけば複雑な機能のbotも作れそう。ただ、定番はpythonぽい。

個人的にはnodeもインストールしてcronでない方法での定期実行もやってみたい。