phpからツイッターに自動投稿
phpからツイッターに自動投稿
PHPからTwitterに自動投稿するには、Twitter APIと連携する必要があります。まず、Twitter Developerアカウントを取得し、アプリを作成してAPIキーとAPIシークレットキー、アクセストークンとアクセストークンシークレットを取得します。
PHPでTwitter APIを扱うライブラリであるabraham/twitteroauth
を使用することが一般的です。Composerを使ってインストールしましょう。
- まず、Composerがインストールされていることを確認し、プロジェクトフォルダを作成します。
csharp
composer init
- 次に、
abraham/twitteroauth
ライブラリをインストールします。
bash
composer require abraham/twitteroauth
post_tweet.php
というファイルを作成し、以下のコードを記述します。適切な箇所にあらかじめ取得したAPIキー、APIシークレットキー、アクセストークン、アクセストークンシークレットを記入してください。
php
<?php
require 'vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
// あらかじめ取得した各種キー
$api_key = 'API_KEY';
$api_secret_key = 'API_SECRET_KEY';
$access_token = 'ACCESS_TOKEN';
$access_token_secret = 'ACCESS_TOKEN_SECRET';
// TwitterOAuthのインスタンスを作成
$connection = new TwitterOAuth($api_key, $api_secret_key, $access_token, $access_token_secret);
// ツイート内容
$message = 'これはテストツイートです。';
// ツイートを投稿
$status = $connection->post("statuses/update", ["status" => $message]);
// エラーがあれば表示
if ($connection->getLastHttpCode() != 200) {
echo 'Error: ' . $status->errors[0]->message . PHP_EOL;
} else {
echo 'Tweet posted successfully.' . PHP_EOL;
}
- これで準備が整いました。
post_tweet.php
を実行することでTwitterに自動投稿できます。
php post_tweet.php
投稿が成功すれば、「Tweet posted successfully.」と表示され、エラーがあればエラーメッセージが表示されます。
動画と画像を含めた投稿をするには?
動画や画像を含めた投稿を行うには、まずメディアファイルをTwitterにアップロードし、その後に投稿を行う必要があります。以下の手順で行います。
以下のコードは、画像ファイルを含むツイートを投稿するサンプルです。動画ファイルをアップロードする場合は、uploadMedia()
関数内の media/upload
エンドポイントを使用し、media_category
パラメーターを tweet_video
に設定します。
html
<?php
require 'vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
// あらかじめ取得した各種キー
$api_key = 'API_KEY';
$api_secret_key = 'API_SECRET_KEY';
$access_token = 'ACCESS_TOKEN';
$access_token_secret = 'ACCESS_TOKEN_SECRET';
// TwitterOAuthのインスタンスを作成
$connection = new TwitterOAuth($api_key, $api_secret_key, $access_token, $access_token_secret);
// ツイート内容
$message = 'これは画像付きのテストツイートです。';
// 画像ファイルのパス
$image_path = 'path/to/your/image.jpg';
// 画像をアップロードし、メディアIDを取得
$media_id = uploadMedia($connection, $image_path);
// ツイートを投稿
$status = $connection->post("statuses/update", ["status" => $message, "media_ids" => $media_id]);
// エラーがあれば表示
if ($connection->getLastHttpCode() != 200) {
echo 'Error: ' . $status->errors[0]->message . PHP_EOL;
} else {
echo 'Tweet with image posted successfully.' . PHP_EOL;
}
/**
* メディアファイルをアップロードし、メディアIDを返す
*
* @param TwitterOAuth $connection
* @param string $image_path
* @return string
*/
function uploadMedia($connection, $image_path) {
$media = $connection->upload('media/upload', ['media' => $image_path]);
if (isset($media->media_id_string)) {
return $media->media_id_string;
} else {
echo 'Error: ' . $media->errors[0]->message . PHP_EOL;
exit();
}
}
画像や動画が含まれるツイートを投稿するには、$message
変数に投稿したいテキストを設定し、$image_path
にアップロードしたい画像ファイルのパスを設定してください。このコードを実行すると、指定された画像を含むツイートが投稿されます。
まとめ・感想
簡単。Xではどうなのだろうか。