twitter

twitterに画像付きツイートをする、いわゆる「BOT」を作りたいと思って、色々と調べてみました。

twitter用のプログラムを開発するには、プロフィールに携帯電話番号を登録し、Application Managementで開発者用の登録をし、APIキーやアクセストークンなどを取得する必要があります。

abraham/twitteroauth というライブラリを使うことで、画像付きツイートをするためのコードは、超簡単になります。

今回、サーバーは、Xserverを使ったので、abraham/twitteroauth は、インストールするのではなく、ダウンロードして、サーバーにアップロードしました。

 

まず、こちらからライブラリをダウンロードします。

https://github.com/abraham/twitteroauth

abraham/twitteroauth

twitteroauth-master.zip というファイルがダウンロードされます。

twitteroauth-master.zip を展開すると、twitteroauth-masterフォルダの中に、いくつかのファイルと srcフォルダ、testsフォルダがあります。

abraham/twitteroauth

ファイルとsrcフォルダをサーバーの任意の場所にアップします。

 

ツイートするためのphpコードは、こんな感じです。

<?php

// 必要なライブラリを読み込む
  require_once('twitteroauth/autoload.php');
  require_once('twitteroauth/src/TwitterOAuth.php');

// ツイッターにアクセスするためのパラメータをセット
  define('consumer_key', 'APIキー');
  define('consumer_secret', 'API シークレット');
  define('access_token', 'アクセストークン');
  define('access_token_secret', 'アクセストークン シークレット');

  use Abraham\TwitterOAuth\TwitterOAuth;

// ツイッターにアクセス
  $connection = new TwitterOAuth(
    consumer_key,
    consumer_secret,
    access_token,
    access_token_secret
  );

// 画像をアップロードして、そのメディアIDを変数に格納
  $media1 = $connection->upload('media/upload', ['media' => '画像ファイル1']);
  $media2 = $connection->upload('media/upload', ['media' => '画像ファイル2']);

// ツイートするためのパラメータをセット
  $parameters = [
    'status' => 'ツイートする内容140文字以内',
    'media_ids' => implode(',', [
        $media1->media_id_string,
        $media2->media_id_string
        ])
  ];

// ツイートを実行
  $result = $connection->post('statuses/update', $parameters);

?>

autoload.php と TwitterOAuth.php に、正しくパスを通せば、機能します。

指定した画像ファイルが無いと、エラーになりますが、文字のツイートはされます。

BOTにするなら、ツイートする文字列や画像のファイル名などをデータベース管理したり、cron で指定した時間にプログラムを自動実行させる必要があります。

画像付きのツイートは、自分で最初からコードを書こうと思うと、かなり面倒ですが、ライブラリを使うことで、こんなに簡単に実現できてしまいます。

起業して頑張っている人だけにオススメする8冊


 

私が買ってよかったパソコン&iPhone関連商品 トップ8