SMM API Yapısı | Kendi SMM Servisinizi Nasıl Oluşturursunuz?
Merhabalar,
Şu an bir çok kişi kendi smm servisini oluşturmak istiyor. Özellikle otomasyon yazılımlarına merakı olan yazılımcıların kesinlikle girmesi gereken bir sektördür.
Neden? Parası tatlı.
Bu yazı bu işler hakkında çok başlangıç - temel bir bilgi sağlayacaktır. İlgi görürse takipçi yazılımı nasıl yapılır buna kadar gidicektir.
Ufak temel bilgilerle başlayalım şimdilik.
Bu İşin Ufak Bir Özeti
Elbette bu iş zor olmaktadır çünkü sosyal medya platformları bildiğinizi gibi güncel olmaktadır. Bir takipçi yazılımı yaptığımız zaman bir bakmışız 2 gün sonra fixlenmiş ve emekleriniz çöp oluyor diyebiliriz. Bu yüzden siz, siz olun Instagram gibi platformlar yerine bu işe yeni başlıyorsanız daha az güncelleme alan keşfedilmemiş platformlara hizmet verin.
SMM Servisleri Nasıl Yapılır?
Öncelikle SMM servislerini kodlamadan önce SMM Panellerin yapısına bakmamız gerekmekte.
Piyasa üzerinde bir çok smm panel scripti mevcuttur fakat en popülerleri:
1. Perfect Panel
2. Glycon V2 Script
3. Sweet Panel
4. Fast Panel Script
> Bu 2 script üzerinden örnek verelim. İkiside PHP ile kodlanmıştır.
SMM Servisi yaparken ya bir script kullanarak direk site - sunucu paslasması yaparak smm panellerle uygun bir şekilde hizmet verebilirsiniz.
Dilersenizde 0'dan bir sunucu üzerinde örnek olarak NODE.JS ile bir yapı oluşturabilirsiniz. Sadece belirli servisleriniz olucaksa sizin için sadece bir API yapısı oluşturmak yeterli olur.
Fakat bir SMM Panel scripti üzerinden geliştirme yapmak sizin için daha uygun olucaktır. Direkmen API verebilirsiniz ve her şey hazır olur.
Örnek: 2002 nolu servise gelen siparişleri kendi sunucunuza istek olarak yöneltirsiniz ve kendi yazılımınız bu durumda tetiklenir.
Bu durumda ufak bir PHP düzenlenmesi yeterli olucaktır.
ÖRNEKLERLE ANLATIMLAR
1. SİPARİŞ DURUMLARI:
Örnek olarak burda, bir smm panele istek yolluyoruz. Bu kod belirttiğimiz servis numarasından bir sipariş vermemizi sağlar.
Siparişi oluşturur ve smm panel bunu kabul eder. O smm panelde kendi apisine böyle bir istek yollar, domino etkisinde gider böyle.
Tabi ki ana sağlayıcı burda olaya dur diyor. Bu istek en sonunda ana sağlayıcıya geldiği zaman o başka apiye yollamak yerine kendi sunucusuna bir istek yolluyor.
Örnek > #65462346
Benzersiz bir sipariş kimliği oluşturuldu. Artık bu sipariş beklemede.
Ufak bir örnekle konuyu özetleyelim.
>> KontrolURL üzerindeki veriyi bir kullanıcı adı olarak düşün.
Örnek: turkhackteam adında ki bir instagram kullanıcısı. instagram.com/${kontrolURL} bu sayfaya gidip takipçi sayısını çektikten sonra bizden api çeken panele geri başlangıç sayısı gönderebiliriz.
>> Şunu Unutmayın: Eğer smm panel scripti üzerinden değil de, kendiniz özel bir yapı oluşturduysanız API keyleri kontrol ettirmeli ve özel bir bakiye sistemine geçiş yapmalısınız. Bu kısımlarda falan ekstra özelleştirmeler yapmanız gerekir. (SMM Panel Entegresi için)
const baslangic = '4'
res.json({ result: baslangic });
{ "start_count": `${start_count}` }
Gördüğünüz gibi yanıt verdik. Bunlar çok basit örnekler tabi ki.
Sipariş isteği geldiğinde sıra sistemi oluşturmalısınız yoksa çökmelerden ve düzensizlikten kaçamazsınız.
Gerisi aslında sizin yeteneklerinize kalmakta size kısa bir şekilde yapıyı anlatmaya çalışıyorum.
Örnek olarak userler.txt dosyanız var teker teker userler.txt dosyasındaki hesaplara girip üstteki kontrolURL'si üzerindeki kullanıcıyı takip eden bir sistem yazdınız. 10 adet sipariş mevcuttu ve 10 adet sipariş tamamlandı.
SMM Panele status verisini Completed olarak gördüğünde o sipariş tamamlanır.
{ "status": "Completed" }
Biz sunucu tarafında yani siparişi aldığımız zaman, sunucumuza yollandığı zaman:
Takipçi gönderirken yazılımımız yükleniyor modunda yani { "status": "In progress" },
const kalansayi = "44"
{ "remains": `${kalansayi}` }
Her 5 dakikada bir yanıt gönderip kalan miktarı güncelleyebilirsiniz.
PHP API YAPI ÖRNEĞİ
SMM PANELLERİN API DÖKÜMANI: API
(Tamamen anlamak için inceleyiniz)
Hayırlı forumlar.
Aklınıza takılan sorular olursa sorabilirsiniz.
Merhabalar,
Şu an bir çok kişi kendi smm servisini oluşturmak istiyor. Özellikle otomasyon yazılımlarına merakı olan yazılımcıların kesinlikle girmesi gereken bir sektördür.
Neden? Parası tatlı.
Bu yazı bu işler hakkında çok başlangıç - temel bir bilgi sağlayacaktır. İlgi görürse takipçi yazılımı nasıl yapılır buna kadar gidicektir.
Ufak temel bilgilerle başlayalım şimdilik.
Bu İşin Ufak Bir Özeti
Elbette bu iş zor olmaktadır çünkü sosyal medya platformları bildiğinizi gibi güncel olmaktadır. Bir takipçi yazılımı yaptığımız zaman bir bakmışız 2 gün sonra fixlenmiş ve emekleriniz çöp oluyor diyebiliriz. Bu yüzden siz, siz olun Instagram gibi platformlar yerine bu işe yeni başlıyorsanız daha az güncelleme alan keşfedilmemiş platformlara hizmet verin.
SMM Servisleri Nasıl Yapılır?
Öncelikle SMM servislerini kodlamadan önce SMM Panellerin yapısına bakmamız gerekmekte.
Piyasa üzerinde bir çok smm panel scripti mevcuttur fakat en popülerleri:
1. Perfect Panel
2. Glycon V2 Script
3. Sweet Panel
4. Fast Panel Script
> Bu 2 script üzerinden örnek verelim. İkiside PHP ile kodlanmıştır.
SMM Servisi yaparken ya bir script kullanarak direk site - sunucu paslasması yaparak smm panellerle uygun bir şekilde hizmet verebilirsiniz.
Dilersenizde 0'dan bir sunucu üzerinde örnek olarak NODE.JS ile bir yapı oluşturabilirsiniz. Sadece belirli servisleriniz olucaksa sizin için sadece bir API yapısı oluşturmak yeterli olur.
Fakat bir SMM Panel scripti üzerinden geliştirme yapmak sizin için daha uygun olucaktır. Direkmen API verebilirsiniz ve her şey hazır olur.
Örnek: 2002 nolu servise gelen siparişleri kendi sunucunuza istek olarak yöneltirsiniz ve kendi yazılımınız bu durumda tetiklenir.
Bu durumda ufak bir PHP düzenlenmesi yeterli olucaktır.
ÖRNEKLERLE ANLATIMLAR
1. SİPARİŞ DURUMLARI:
JavaScript:
const hizmetID = "SERVİS NO"
const kullaniciAdi = "SİPARİŞ KULLANICI ADI"
const miktar = "KAÇ ADET TAKİPÇİ"
const API_KEY = 'SMM PANEL API KEY';
const SMM_PANEL = 'roicmedya.com';
const SERVICE_ID = hizmetID;
const USERNAME = kullaniciAdi;
const QUANTITY = miktar;
const url = `https://${SMM_PANEL}/api/v2`;
const data = {
key: API_KEY,
action: 'add',
service: SERVICE_ID,
link: `https://www.instagram.com/${USERNAME}`,
quantity: QUANTITY,
}
const config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
await axios.post(url, new URLSearchParams(data), config)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
}
}
Örnek olarak burda, bir smm panele istek yolluyoruz. Bu kod belirttiğimiz servis numarasından bir sipariş vermemizi sağlar.
Siparişi oluşturur ve smm panel bunu kabul eder. O smm panelde kendi apisine böyle bir istek yollar, domino etkisinde gider böyle.
Tabi ki ana sağlayıcı burda olaya dur diyor. Bu istek en sonunda ana sağlayıcıya geldiği zaman o başka apiye yollamak yerine kendi sunucusuna bir istek yolluyor.
Örnek > #65462346
Benzersiz bir sipariş kimliği oluşturuldu. Artık bu sipariş beklemede.
Ufak bir örnekle konuyu özetleyelim.
JavaScript:
app.get('/kontrol', async (req, res) => {
const kontrolURL = req.query.link
});
>> KontrolURL üzerindeki veriyi bir kullanıcı adı olarak düşün.
Örnek: turkhackteam adında ki bir instagram kullanıcısı. instagram.com/${kontrolURL} bu sayfaya gidip takipçi sayısını çektikten sonra bizden api çeken panele geri başlangıç sayısı gönderebiliriz.
>> Şunu Unutmayın: Eğer smm panel scripti üzerinden değil de, kendiniz özel bir yapı oluşturduysanız API keyleri kontrol ettirmeli ve özel bir bakiye sistemine geçiş yapmalısınız. Bu kısımlarda falan ekstra özelleştirmeler yapmanız gerekir. (SMM Panel Entegresi için)
const baslangic = '4'
res.json({ result: baslangic });
{ "start_count": `${start_count}` }
Gördüğünüz gibi yanıt verdik. Bunlar çok basit örnekler tabi ki.
Sipariş isteği geldiğinde sıra sistemi oluşturmalısınız yoksa çökmelerden ve düzensizlikten kaçamazsınız.
Gerisi aslında sizin yeteneklerinize kalmakta size kısa bir şekilde yapıyı anlatmaya çalışıyorum.
Örnek olarak userler.txt dosyanız var teker teker userler.txt dosyasındaki hesaplara girip üstteki kontrolURL'si üzerindeki kullanıcıyı takip eden bir sistem yazdınız. 10 adet sipariş mevcuttu ve 10 adet sipariş tamamlandı.
SMM Panele status verisini Completed olarak gördüğünde o sipariş tamamlanır.
{ "status": "Completed" }
Biz sunucu tarafında yani siparişi aldığımız zaman, sunucumuza yollandığı zaman:
Takipçi gönderirken yazılımımız yükleniyor modunda yani { "status": "In progress" },
const kalansayi = "44"
{ "remains": `${kalansayi}` }
Her 5 dakikada bir yanıt gönderip kalan miktarı güncelleyebilirsiniz.
PHP API YAPI ÖRNEĞİ
PHP:
<?php
class Api
{
/** API URL */
public $api_url = 'https://roicmedya.com/api/v2';
/** Your API key */
public $api_key = '';
/** Add order */
public function order($data)
{
$post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
return json_decode($this->connect($post));
}
/** Get order status */
public function status($order_id)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'action' => 'status',
'order' => $order_id
])
);
}
/** Get orders status */
public function multiStatus($order_ids)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'action' => 'status',
'orders' => implode(",", (array)$order_ids)
])
);
}
/** Get services */
public function services()
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'action' => 'services',
])
);
}
/** Refill order */
public function refill(int $orderId)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'order' => $orderId,
])
);
}
/** Refill orders */
public function multiRefill(array $orderIds)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'orders' => implode(',', $orderIds),
]),
true,
);
}
/** Get refill status */
public function refillStatus(int $refillId)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'refill' => $refillId,
])
);
}
/** Get refill statuses */
public function multiRefillStatus(array $refillIds)
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'refills' => implode(',', $refillIds),
]),
true,
);
}
/** Get balance */
public function balance()
{
return json_decode(
$this->connect([
'key' => $this->api_key,
'action' => 'balance',
])
);
}
private function connect($post)
{
$_post = [];
if (is_array($post)) {
foreach ($post as $name => $value) {
$_post[] = $name . '=' . urlencode($value);
}
}
$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if (is_array($post)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$result = curl_exec($ch);
if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}
// Examples
$api = new Api();
$services = $api->services(); # Return all services
$balance = $api->balance(); # Return user balance
// Add order
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 2, 'interval' => 5]); # Default
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'comments' => "good ***\ngreat photo\n:)\n;)"]); # Custom Comments
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test']); # Package
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 10, 'interval' => 60]); # Drip-feed
// Old posts only
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'posts' => 0, 'delay' => 30, 'expiry' => '11/11/2022']); # Subscriptions
// Unlimited new posts and 5 old posts
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'old_posts' => 5, 'delay' => 30, 'expiry' => '11/11/2022']); # Subscriptions
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'username' => "test"]); # Comment Likes
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'answer_number' => '7']); # Poll
$status = $api->status($order->order); # Return status, charge, remains, start count, currency
$statuses = $api->multiStatus([1, 2, 3]); # Return orders status, charge, remains, start count, currency
$refill = (array) $api->multiRefill([1, 2]);
$refillIds = array_column($refill, 'refill');
if ($refillIds) {
$refillStatuses = $api->multiRefillStatus($refillIds);
}
SMM PANELLERİN API DÖKÜMANI: API
(Tamamen anlamak için inceleyiniz)
Hayırlı forumlar.
Aklınıza takılan sorular olursa sorabilirsiniz.