wordpressでエロサイトをつくってみる

wordpressを使ってエロサイト(http://www.javcovery.net)を作ってみた。wordpressの技術、SEO、アフィリエイト

twitterからエロ画像を取得してみる(PHP)

twitterからエロ画像を取得できないかとやってみました。
(コンテンツとしては現在公開はしていませんが、取得はできました)

①twitteroauthをダウンロード

abraham/twitteroauth · GitHub

ダウンロードしてきたtwitteroauthフォルダごとアップします。

twitterアプリケーション登録

このあたりを参考に、Consumer Key (API Key)とConsumer Secret (API Secret)、accessToken とaccessSecretを取得。syncer.jp

③画像を取得するphp

まずは基本設定。

require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

//NOTE:認証
$consumerKey = "********";
$consumerSecret = "********";
$accessToken = "********";
$accessTokenSecret = "********";

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

そして画像のURLを取得する方法。
これはリストに入れているユーザーがアップした画像を取得する方法。
まずはエロ写真をアップするユーザーをリストに入れておきます。この時に、純粋にエロ画像だけをアップするユーザーだけを選ぶのがポイント。


list_idはこのあたりで
Twitterの公開リストのIDを簡単に調べる方法 | Webstjam

//データベースへ接続する
$db_link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$statuses = $connection->get("lists/statuses", array("list_id"=>"****","count"=>100,"include_entities"=>1,"include_rts"=>0));

foreach($statuses as $statuse){
  $medias = $statuse->entities->media;
  foreach((array)$medias as $media){
    if($media -> media_url){
      $url = $media -> media_url;
    }
  }
}

こんな感じで取得しました。
それをサーバーに保存するもよし、データベースにバイナリで保存するもよし。

ちなみにバイナリで保存するのは

//データベースへ接続する
$db_link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$statuses = $connection->get("lists/statuses", array("list_id"=>"****","count"=>100,"include_entities"=>1,"include_rts"=>0));

foreach($statuses as $statuse){
  $medias = $statuse->entities->media;
  foreach((array)$medias as $media){
    if($media -> media_url){
      $url = $media -> media_url;
      $img_file = file_get_contents($url);
      
      //DB接続
   $img_binary = mysqli_real_escape_string( $db_link, $img_file );
   $result = mysqli_query( $db_link, 'INSERT INTO テーブル (img_blob) VALUES ( "'.$img_binary.'")');
    }
  }
}

こんな感じにして、

表示は

//データベースへ接続する
$db_link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

//指定したidのimgを検索、$target_idは別途指定
$serch_query = mysqli_query($db_link,"SELECT * FROM img_table WHERE id ='".$target_id."'");
$row = mysqli_fetch_array($serch_query);
mysqli_close($db_link);

//画像として表示
header("Content-type: image/jpeg");
print $row['img_blob'];

ちなみにこれはjpgの場合なので、本当はデータベースにおさめるときにファイル形式を判別して、ファイル形式もデータベースに保存して

header("Content-type: image/jpeg");

この部分を出し分ける必要があるかと思います。