毎回毎回、更新が苦痛で挫折しないように自動で投稿してくれるコードを公開します。
設定さえすれば後は何もしなくても永遠と投稿をし続けてくれます。
90分おきに自動投稿されるコードを無料で大公開します。
3.2更新
<?php
$api_id = "XXX";//利用規約をご確認のうえ、API利用登録を行ってください。API IDが発行されます。
$affiliate_id = "XXX-990";//アフィリエイトIDは末尾を990~999に設定してください。末尾が990~999以外ではエラーとなります。
$site = "DMM.R18";//一般(DMM.com)かアダルト(DMM.R18)か
$service = "";//検索対象サービスを指定します
$floor = "";//検索対象フロアを指定します
$hits = "10";//検索結果の件数を指定します。
$sort = "rank";//初期値:rank
$keyword = "";//商品タイトルなどからキーワード検索をします。
$xml = "https://api.dmm.com/affiliate/v3/ItemList?api_id=$api_id&affiliate_id=$affiliate_id&site=$site&service=$service&floor=$floor&hits=$hits&sort=$sort&keyword=$keyword&output=xml";
$xml = simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
//var_dump($xml);
for ($i = 0; ; $i++) {
$item = $xml->result->items->item;
$title[$i] = $item[$i] ->title;
$link[$i] = $item[$i] ->URL;
$price[$i] = $item[$i] ->prices->price;
$gazo[$i] = $item[$i] ->imageURL->large;
$actress[$i] = $item[$i] ->iteminfo->actress->item->name;
$series[$i] = $item[$i] ->iteminfo->series->item->name;
$sampleMovieURL[$i] = $item[$i] ->sampleMovieURL->size_720_480;
if ($title[$i] == "") {break;}
$art = "<div class='az'>
<a target='_blank' href='$link[$i]$id'><img src='$gazo[$i]' alt='$title[$i]' title='$title[$i]' /></a>
◆タイトル:<a target='_blank' href='$link[$i]'>$title[$i]</a><BR>
◆女優名:$actress[$i]<BR>
◆価格:$price[$i]<BR>
◆シリーズ:$series[$i]<BR>
◆サンプルムービー:<a target='_blank' href='$sampleMovieURL[$i]'>サンプル[720×480]を視聴する</a>
</div>";
echo $art;
}//▲for
?>
実際に使用する前に書き換えが必要な個所がいくつかあります。
$api_id
と$affiliate_id
には、DMM.comのAPIを利用するためのAPI IDとアフィリエイトIDを指定する必要があります。これらの値は、DMM.comのサイトでAPI利用登録を行って取得する必要があります。$site
には、取得する商品情報のサイト(DMM.comまたはDMM.R18)を指定する必要があります。$service
と$floor
には、検索対象となるサービスとフロアを指定することができますが、指定しなくても検索は可能です。$hits
には、検索結果の件数を指定することができます。ただし、DMM.comのAPIの仕様上、最大で100件までしか取得できないため、100件以上を指定しても取得件数は100件になります。$sort
には、検索結果の並び順を指定することができます。デフォルトはランキング順ですが、価格順やリリース日順に並び替えることも可能です。$keyword
には、商品タイトルやキーワードを指定することができます。指定しなければすべての商品情報を取得します。
このコードは、DMM.comからXML形式で商品情報を取得し、その情報を元にHTML形式で商品情報を表示するためのものです。
具体的には、DMM.comのAPIに接続するための情報を設定し、商品情報を取得しています。その後、取得した商品情報を1つずつ処理して、HTML形式で表示するためのコードを生成しています。これを商品情報の数だけ繰り返し、HTML形式で表示することで、商品情報を表示しています。
このコードのforループの働きは、取得した商品情報を1つずつ処理するためのものです。forループ内では、$iという変数を用いて、商品情報を1つずつ取得しています。取得した商品情報は、それぞれタイトル、リンク、価格、画像URL、女優名、シリーズ、サンプルムービーのURLなどが含まれています。そして、これらの情報を使って、1つの商品情報のHTML形式のコードを生成し、それをechoで出力しています。
商品情報をすべて取得し終わった時点で、$title[$i]が空文字列になるため、forループは終了します。
WordPressの環境でFANZA APIキーを設定
次の手順を実行します。
- wp-config.phpファイルを開き、次の行を追加します
-
define('FANZA_API_ID', 'your-api-id'); define('FANZA_AFFILIATE_ID', 'your-affiliate-id');
-
ここで、'あなたの
your-affiliate-id
をそれぞれFANZA APIのAPI IDとアフィリエイトIDに置き換えます。- wp-config.phpファイルを保存して、WordPressの設定を再読み込みします。
これでFANZA APIキーがWordPressの環境に設定され、API呼び出しを行うプログラムでこれらの定数を参照できます。
コードの目的
DMMアフィリエイトAPIを利用して、自動的に記事を投稿するためのコードです。以下のような処理が行われます。
- DMMアフィリエイトAPIから指定したキーワードを含む動画の情報を取得する。
- 取得した動画情報を元に、WordPressの「draft」状態の記事を作成する。
- 記事にタイトル、動画の説明、動画の埋め込みコードを含める。
- 記事を投稿する間隔を1日16回、90分ごとに設定する。
このコードには、APIリクエストが成功した場合の処理と失敗した場合の処理が含まれています。また、記事の投稿時にエラーチェックを行い、投稿に失敗した場合にはエラーメッセージを出力するようになっています。
さらに、投稿時刻を日本時間に設定するために、タイムゾーンを設定する処理が追加されています。
なお、このコードを正常に動作させるためには、WordPressサイトにFANZA APIキーを持つアフィリエイト会員登録が必要です。また、自動投稿機能を実行するための適切なサーバー設定も必要です。
APIキーの発行方法
DMMアフィリエイトトップページからWebサービスをクリック
左上のAPI IDを確認をクリック
※発行済なので「API IDを確認」となっています
即、発行されます。
APIキーの設定
一番初め、APIキーの設定
define('FANZA_API_ID', '自分のAPIキーを入力してください
'); define('FANZA_AFFILIATE_ID', '自分のAPIキーを入力してください
');
に自分のAPIキーとアフィリエイトIDに置き換えて完璧なコードに直してください
(※赤文字で示した部分だけ置き換え)
アフィリエイトIDも新たに追加されるので注意
登録情報を確認すると990~999までのAPI用登録アフィリエイトIDが追加されています。
この990番台のIDをコードに書かないとエラーが勃発し、いつまでも自動投稿されないので注意してください。
投稿されない場合
自動投稿機能がうまく動作しない場合、以下の可能性があります。
WordPress cronが停止している場合
自動投稿には WordPress cron が必要ですが、この機能が停止していると自動投稿も実行されません。この場合は、WordPress の設定を調整する必要があります。
wp_schedule_event が正しく設定されていない場合
投稿が正常にスケジュールされていない場合は、スケジュールの設定を見直す必要があります。wp_schedule_event の第一引数には、次に実行されるタイミングを Unix タイムスタンプで指定します。第二引数には、実行間隔を指定します。第三引数には、実行する関数名を指定します。この引数に設定した関数名が正しく呼び出されているか確認することも重要です。
API キーが無効になっている場合
自動投稿に使用している API キーが無効になっている場合、投稿が失敗する可能性があります。API キーが正しく設定されているか、有効期限が切れていないか確認してください。
サーバーの制限に引っかかっている場合
自動投稿がうまくいかない場合、サーバーの制限に引っかかっている可能性があります。自動投稿が実行されるたびに、サーバーが過負荷状態になっている可能性があります。この場合は、サーバーの設定を見直す必要があります。
上記の可能性を確認し、それでも解決できない場合は、エラーの詳細を確認するために、ログファイルを調べることをお勧めします。
プラグインを導入
Scheduled Post Triggerと検索してプラグインをインストールしましょう。
Scheduled Post Triggerは予約投稿の失敗を自動で投稿し直してくれます。
Twitterと連携
WordPressの自動投稿機能を利用してTwitterと連携することができます。以下の手順で設定できます。
- まず、Twitter Developer Platformに登録し、アプリケーションを作成して、APIキーとAPIシークレットを取得してください。
- 次に、WordPressの管理画面から「プラグイン」を選択し、「新規追加」をクリックします。
- 検索バーに「WP to Twitter」と入力し、プラグインをインストールして有効化します。
- 「WP to Twitter」の設定画面に移動し、Twitter APIキーとAPIシークレットを入力します。
- 投稿設定の欄に、「Twitterに投稿する」にチェックを入れます。
- これで、新しい投稿が自動的にTwitterに投稿されるようになります。
以上の手順で、WordPressの投稿とTwitterを連携することができます。ただし、Twitter APIの利用には制限がありますので、API利用規約を確認してください。