Arkadaşlar merhaba,
Tesla araç envanter takibi için kendime yazdığım 1 sayfalık envanter botunu ücretsiz olarak paylaşıyorum. Bu koddaki "YOUR_COOKIE_INFO", "YOUR_TELEGRAM_CHAT_ID" ve "YOUR_TELEGRAM_TOKEN" bilgilerinizi doldurup kendinize de bildirim atmasını sağlayabilirsiniz. Php dosyanızı sunucunuzda cron ile her x dakikada bir çalışacak şekilde yapılandırabilirsiniz.
<?php
$url = "https://www.tesla.com/coinorder/api/v4/inventory-results?query=%7B%22query%22%3A%7B%22model%22%3A%22my%22%2C%22condition%22%3A%22new%22%2C%22options%22%3A%7B%7D%2C%22arrangeby%22%3A%22Price%22%2C%22order%22%3A%22asc%22%2C%22market%22%3A%22TR%22%2C%22language%22%3A%22tr%22%2C%22super_region%22%3A%22north%20america%22%2C%22lng%22%3A%22%22%2C%22lat%22%3A%22%22%2C%22zip%22%3A%22%22%2C%22range%22%3A0%7D%2C%22offset%22%3A0%2C%22count%22%3A24%2C%22outsideOffset%22%3A0%2C%22outsideSearch%22%3Afalse%2C%22isFalconDeliverySelectionEnabled%22%3Atrue%2C%22version%22%3A%22v2%22%7D";
// $urlABD = "https://www.tesla.com/inventory/api/v4/inventory-results?query=%7B%22query%22%3A%7B%22model%22%3A%22my%22%2C%22condition%22%3A%22new%22%2C%22options%22%3A%7B%7D%2C%22arrangeby%22%3A%22Savings%22%2C%22order%22%3A%22asc%22%2C%22market%22%3A%22US%22%2C%22language%22%3A%22en%22%2C%22super_region%22%3A%22north%20america%22%2C%22PaymentType%22%3A%22cash%22%2C%22paymentRange%22%3A70000%7D%2C%22offset%22%3A0%2C%22count%22%3A24%2C%22outsideOffset%22%3A0%2C%22outsideSearch%22%3Afalse%2C%22isFalconDeliverySelectionEnabled%22%3Atrue%2C%22version%22%3A%22v2%22%7D";
$headers = [
'Pragma: no-cache',
'Accept: */*',
'Sec-Fetch-Site: same-origin',
'Accept-Language: en-US,en;q=0.9',
'Accept-Encoding: gzip, deflate, br',
'Sec-Fetch-Mode: cors',
'Cache-Control: no-cache',
'Host: www.tesla.com',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15',
'Referer: https://www.tesla.com/tr_TR/inventory/new/my?arrangeby=plh&zip=&range=0',
'Connection: keep-alive',
'Cookie: YOUR_COOKIE_INFO'
];
// cURL başlat
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_ENCODING, ''); // --compressed karşılığı
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'cURL Hatası: ' . curl_error($ch);
exit;
}
curl_close($ch);
$data = json_decode($response, true);
// var_dump($data);
if ($data['total_matches_found'] > 0) {
foreach ($data['results'] as $car) {
$price = escapeMarkdownV2('$' . $car['PurchasePrice']);
$priceNew = escapeMarkdownV2('₺' . number_format($car['InventoryPrice'], 0, ',', '.')); // TRY için ₺ ve formatlama
$interior = escapeMarkdownV2($car['INTERIOR'][0]);
$paint = escapeMarkdownV2($car['PAINT'][0]);
$vin = escapeMarkdownV2($car['VIN']);
$vinRaw = $car['VIN']; // link için escape'siz
$link = "https://www.tesla.com/tr_TR/my/order/{$vinRaw}?titleStatus=new&redirect=no#overview";
$msg = "*🚗 Tesla Bulundu*\n"
. "*💰 Fiyat:* $priceNew\n"
. "*🎨 Renk:* $paint\n"
. "*🪑 İç Döşeme:* $interior\n"
. "*🔑 VIN:* `$vin`";
sendTelegramMsgWithButton($msg, "🔗 Sipariş Linkini Aç", $link);
}
} else {
echo 'araç yok';
}
function escapeMarkdownV2($text) {
$special_chars = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!'];
foreach ($special_chars as $char) {
$text = str_replace($char, '\\' . $char, $text);
}
return $text;
}
function sendTelegramMsg($msg) {
$chatId = "YOUR_TELEGRAM_CHAT_ID";
$token = "YOUR_TELEGRAM_TOKEN";
$url = "https://api.telegram.org/bot$token/sendMessage";
$data = [
'chat_id' => $chatId,
'text' => $msg
];
file_get_contents($url . '?' . http_build_query($data));
}
function sendTelegramMsgWithButton($msg, $buttonText, $buttonUrl) {
$chatId = "YOUR_TELEGRAM_CHAT_ID";
$token = "YOUR_TELEGRAM_TOKEN";
$url = "https://api.telegram.org/bot$token/sendMessage";
$data = [
'chat_id' => $chatId,
'text' => $msg,
'parse_mode' => 'MarkdownV2',
'reply_markup' => json_encode([
'inline_keyboard' => [
[
['text' => $buttonText, 'url' => $buttonUrl]
]
]
])
];
$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($data),
];
$ch = curl_init();
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
}