概要
スマートフォン向けアプリケーションソフト「755」のトークルームに投稿された画像と動画のサムネ画像を全て取得するPHPプログラムの作成
ソースコード
download_755_imagefile.php
<?php
// XXXの箇所は取得対象となるトークルームのtalkIdを指定
$url = "https://api.7gogo.jp/web/v2/talks/XXX/posts?talkId=XXX";
// 保存先のディレクトリを指定
$dir = XXXXX;
$postId = null;
// 画像URLから画像データをDL
function download($image_url, $image_file_name)
{
echo "Downloading " . $image_file_name . "\n";
$image_date = file_get_contents($image_url);
file_put_contents($GLOBALS['dir'] . $image_file_name, $image_date);
}
// 保存ディレクトリが存在しない場合作成する
if (!file_exists($dir)) {
mkdir($dir, 0777);
}
while (true) {
if ($postId === null) {
$json = file_get_contents($url);
} else {
$json = file_get_contents($url . "&targetId=" . $postId);
}
$arr = json_decode($json, true);
foreach ($arr["data"] as $data) {
$image_url = "";
// 画像投稿の場合は画像URLを取得
if ($data["post"]["postType"] === 7) {
$image_url = $data["post"]["body"][0]["image"];
$image_file_name = str_replace('/', '_', substr($image_url, 36));
download($image_url, $image_file_name);
// 動画投稿の場合はサムネ画像のURLを取得
} elseif ($data["post"]["postType"] === 8) {
$image_url = $data["post"]["body"][0]["thumbnailUrl"];
$image_file_name
= str_replace('/', '_', end(explode('thumbnail/', $image_url)));
download($image_url, $image_file_name);
}
}
$last_data = end($arr["data"]);
if ($last_data["post"]["postId"] === 1) {
break;
} else {
$postId = $last_data["post"]["postId"] - 1;
}
}
talkIdについて
トークルームのURLから確認できます。
https://7gogo.jp/<この部分がtalkId>
実行イメージ
$ php download_755_imagefile.php
Downloading 20191101_10_7d_gf_j_o19201920p.jpg
Downloading 20191029_23_c4_4C_j_o19201440p.jpg
Downloading SFTxBwclpiEztl7beYMmBvNX_thumbnail.jpg
Downloading 20191018_21_f9_uB_j_o19201440p.jpg
Downloading 20191017_23_ae_dV_j_o19201440p.jpg
︙