Blueskyで動くPHP製のbot

Blueskyで動くbotをPHP PHPでつくったときのメモ。botの内容は、txtファイルに書かれた内容をランダムに投稿するというオーソドックスなもの。

まずBlueskyでbotを動かすアカウントのアプリパスワードを作成・取得しておく(設定「高度な設定」項目にある)
composerのインストール手順は割愛。

ライブラリはpotibm/phlueskyを使用する。composerでインストール。

Terminal window
composer require potibm/phluesky

txtファイルを用意。

list.txt
おはよう
こんにちは
こんばんは
おやすみ
.
.
.

PHPファイルの中身。2行目/vendor/autoload.phpのパスは適宜修正。

//Import Library
require './vendor/autoload.php';
use \potibm\Bluesky\BlueskyApi;
use \potibm\Bluesky\BlueskyPostService;
use \potibm\Bluesky\Feed\Post;
//include file
$filelist = file('./list.txt');
if(shuffle($filelist)) {
$bsky_post = $filelist[0];
}
//setting
define('USER_NAME', 'Blueskyのアカウント名');
define('APP_PASSWORD', '取得したアプリパスワード');
class bluesky {
private $api = null;
private $postService = null;
public function __construct() {
$this->api = new BlueskyApi(USER_NAME, APP_PASSWORD);
$this->postService = new BlueskyPostService($this->api);
}
public function post($text) {
$post = Post::create($text);
$response = $this->api->createRecord($post);
return $response;
}
}
if($argv[0]) {
try {
//ポスト
$status = (new bluesky)->post($bsky_post);
//レスポンス確認(成功 / 検証用)
//var_dump($status);
} catch (\Throwable $error) {
// エラーを表示
//echo "[{$error->getCode()}] {$error->getMessage()}";
}
}

PHPスクリプトをcronで叩くなどして投稿する。