Skip to content

Instantly share code, notes, and snippets.

@mehdikhody
Last active January 3, 2024 16:01
Show Gist options
  • Save mehdikhody/9a862801a2e41f6b5fb6bbc7e1326044 to your computer and use it in GitHub Desktop.
Save mehdikhody/9a862801a2e41f6b5fb6bbc7e1326044 to your computer and use it in GitHub Desktop.
Postman collection moved here:
https://documenter.getpostman.com/view/16802678/2s9YkgD5jm
@Akbar2750
Copy link

سلام. لطفا در رابطه با نحوه استفاده از این برنامه راهنمایی بفرمائید.
ممنون

@Incognito-Coder
Copy link

سلام. لطفا در رابطه با نحوه استفاده از این برنامه راهنمایی بفرمائید. ممنون

این جیسون رو توی برنامه PostMan ایمپورت کنید سمپل استفاده از API ایکس یوآی هست.اونجا متوجه میشید چجوری میشه باهاش کار کنید.

@Akbar2750
Copy link

سلام. لطفا در رابطه با نحوه استفاده از این برنامه راهنمایی بفرمائید. ممنون

این جیسون رو توی برنامه PostMan ایمپورت کنید سمپل استفاده از API ایکس یوآی هست.اونجا متوجه میشید چجوری میشه باهاش کار کنید.

تشکر از راهنمایی تون

@Zahabi
Copy link

Zahabi commented Sep 4, 2023

سلام
این کد برای مدیریت سرور پنل سنایی اعم از ایجاد یوزر، حذف، ریست و سایر تنظیمات در قسمت Inbound هست؟
در صورت مثبت بودن جواب لطفا اعلام بفرمایید کدام قسمت ها را باید برای سرور خودم تغییر بدم تا بتوان بدون وارد شدن به پنل از طریق بات تلگرام سرور را مدیریت کنم

@azadi1984
Copy link

azadi1984 commented Sep 20, 2023

توی postman وقتی رکوئست login با موفقیت ارسال میشه کوکی سشن توی Postman ست میشه
ولی وقتی توی لوکال هاست با express.js و axios رکوئست login ارسال میشه نتیجه true برمیگردونه , توی هدر response هم set-cookie موجوده ولی توی مرورگر کوکی سشن ست نمیشه
میشه راهنمایی کنید ؟

@Incognito-Coder
Copy link

توی postman وقتی رکوئست login با موفقیت ارسال میشه کوکی سشن توی Postman ست میشه ولی وقتی توی لوکال هاست با express.js و axios رکوئست login ارسال میشه نتیجه true برمیگردونه , توی هدر response هم set-cookie موجوده ولی توی مرورگر کوکی سشن ست نمیشه میشه راهنمایی کنید ؟

کوکی که موقع لاگین دریافت میشه رو شما باید جایی ذخیره کنید مثلا توی فایل بعد اونو صدا بزنید موقع ارسال درخواست ها.
پیشنهاد میکنم این صفحه رو هم نگاه بندازید برای CookieJar

@mehdikhody
Copy link
Author

ax

توی postman وقتی رکوئست login با موفقیت ارسال میشه کوکی سشن توی Postman ست میشه ولی وقتی توی لوکال هاست با express.js و axios رکوئست login ارسال میشه نتیجه true برمیگردونه , توی هدر response هم set-cookie موجوده ولی توی مرورگر کوکی سشن ست نمیشه میشه راهنمایی کنید ؟

باید داخل درخواست های axios تنظیمات زیر را قرار بدین.

const data = qs.stringify({
    username: 'admin',
    password: 'admin'
});

await axios.post('http://localhost:2053/login', data, {
    withCredentials: true,  // include cookies
    headers: {
        "Content-Type": "application/x-www-form-urlencoded",
        Accept: "application/json",
    },
});

@Vinegreatt
Copy link

hello! how can i set flow=xtls-rprx-vision with API method? i see only limitIP and any method, but not flow.. thanks a lot

@mehdikhody
Copy link
Author

mehdikhody commented Oct 24, 2023

hello! how can i set flow=xtls-rprx-vision with API method? i see only limitIP and any method, but not flow.. thanks a lot

برای پیدا کردن پارامتر مناسب با تنظیمات خودتان در پنل ثنایی وارد Inspect مرورگر بخش Network شوید. inbound یا client مورد نظر را ایجاد کنید و به Request بخش payload مراجعه کنید.

در مورد درخواست شما:

POST /panel/api/inbounds/addClient HTTP/1.1
Host: {HOST}:{PORT}
Accept: application/json
Content-Type: application/json
Cookie: session={SESSION_ID}

{
    "id": 38,
    "settings": {
        "clients": [
            {
                "id": "717c9fff-f49a-4613-86ea-7d1263a3a0af",
                "flow": "xtls-rprx-vision",
                "email": "cgmzcloo",
                "limitIp": 0,
                "totalGB": 0,
                "expiryTime": 0,
                "enable": true,
                "tgId": "",
                "subId": "jn25gjs56gvw1b7d"
            }
        ]
    }
}

Screenshot 2023-10-24 121542

@jetxpro
Copy link

jetxpro commented Nov 6, 2023

سلام و خسته نباشید
سلام من اینی که گفتنو زدم
اما اررور داره
این ارسال من هستش
{ "id": 1, "clients": [{ "method": "aes-256-gcm", "password": "bQYKdAWGKlLWkYIHzw7KvyMqFn90hOYmWGT0+W+i4Zo=", "email": "9bbm1a5i", "limitIp": 0, "totalGB": 0, "expiryTime": 0, "enable": true, "tgId": "", "subId": "o7ujzm2nxvhycy64" }] }
خطایی که میگیرم
{ "success": false, "msg": "Something went wrong!Fail: unexpected end of JSON input", "obj": null }

sss

@jetxpro
Copy link

jetxpro commented Nov 6, 2023

hello! how can i set flow=xtls-rprx-vision with API method? i see only limitIP and any method, but not flow.. thanks a lot

برای پیدا کردن پارامتر مناسب با تنظیمات خودتان در پنل ثنایی وارد Inspect مرورگر بخش Network شوید. inbound یا client مورد نظر را ایجاد کنید و به Request بخش payload مراجعه کنید.

در مورد درخواست شما:

POST /panel/api/inbounds/addClient HTTP/1.1
Host: {HOST}:{PORT}
Accept: application/json
Content-Type: application/json
Cookie: session={SESSION_ID}

{
  "id": 38,
  "clients": [{
    "id": "717c9fff-f49a-4613-86ea-7d1263a3a0af",
    "flow": "xtls-rprx-vision",
    "email": "cgmzcloo",
    "limitIp": 0,
    "totalGB": 0,
    "expiryTime": 0,
    "enable": true,
    "tgId": "",
    "subId": "jn25gjs56gvw1b7d"
  }]
}

Screenshot 2023-10-24 121542
من خطا دارم
تصویر بالا رو نگاه کنید

{ "success": false, "msg": "Something went wrong!Fail: unexpected end of JSON input", "obj": null }

@hr1510
Copy link

hr1510 commented Nov 16, 2023

hello! how can i set flow=xtls-rprx-vision with API method? i see only limitIP and any method, but not flow.. thanks a lot

برای پیدا کردن پارامتر مناسب با تنظیمات خودتان در پنل ثنایی وارد Inspect مرورگر بخش Network شوید. inbound یا client مورد نظر را ایجاد کنید و به Request بخش payload مراجعه کنید.

.....
درود بر شما ، من هم مثل دوستان به همین خطا
{ "success": false, "msg": "Something went wrong!Fail: unexpected end of JSON input", "obj": null }
بر خوردم ، امکانش هست راهنمایی بفرمایید ؟

آپدیت این نوشته :
با توجه به راهنمایی @Ghasem1243 در پست : https://github.com/MHSanaei/3x-ui/issues/953

من با استفاده از php اطلاعات رو برای افزودن کلاینت جدید به کانفیگ ارسال میکردم .
البته با استفاده از کد دوستان
منتها این مشکل که برخوردم بابت نوع دیتا ارسال شده به API هست.
که باید دیتا را در قدم اخر با استفاده از http_build_query برای تبدیل آرایه به رشته‌ای از پارامترهای URL-encoded تبدیل کنیم بعد ارسال کنیم و مثلا :
در این کد که اساتید زحمت کشیدن :
https://github.com/MHSanaei/3x-ui/issues/324
تنظیم پست فیلد برای CURL در متند sendPOST باید به شکل زیر باشد 👍
CURLOPT_POSTFIELDS => http_build_query($data),

به جای
CURLOPT_POSTFIELDS => json_encode($data)

@mehdikhody
Copy link
Author

mehdikhody commented Nov 21, 2023

خطا و مشکل از نحوه پردازش JSON در زبان GO و وب سرور پنل است. برای برطرف کردن مشکل شما باید آرایه ها یا آبجکت های زیری را هم تبدیل به متن کنید.

یک خطا هم در قسمت پیگربندی داده ها بنده انجام داده بودم که آن را در پست بالا و همین پست نیز برطرف کردم.

{
    "id": 38,
    "settings": "{\"clients\":[{\"id\":\"717c9fff-f49a-4613-86ea-7d1263a3a0af\",\"flow\":\"xtls-rprx-vision\",\"email\":\"cgmzcloo\",\"limitIp\":0,\"totalGB\":0,\"expiryTime\":0,\"enable\":true,\"tgId\":\"\",\"subId\":\"jn25gjs56gvw1b7d\"}]}"
}

مثال زیر در PHP و Javascript:

$data = json_encode([
    "id" => 38,
    "settings" => json_encode([
        "clients" => [
            [
                "id" => "717c9fff-f49a-4613-86ea-7d1263a3a0af",
                "flow" => "xtls-rprx-vision",
                "email" => "cgmzcloo",
                "limitIp" => 0,
                "totalGB" => 0,
                "expiryTime" => 0,
                "enable" => true,
                "tgId" => "",
                "subId" => "jn25gjs56gvw1b7d"
            ]
        ],
    ])
]);
const data = JSON.stringify({
    id: 38,
    settings: JSON.stringify({
        clients: [
            {
                id: '717c9fff-f49a-4613-86ea-7d1263a3a0af',
                flow: 'xtls-rprx-vision',
                email: 'cgmzcloo',
                limitIp: 0,
                totalGB: 0,
                expiryTime: 0,
                enable: true,
                tgId: '',
                subId: 'jn25gjs56gvw1b7d'
            }
        ]
    })
});

@Vinegreatt
Copy link

"id": 38,
"settings": "{\"clients\":[{\"id\":\"717c9fff-f49a-4613-86ea-7d1263a3a0af\",\"flow\":\"xtls-rprx-vision\",\"email\":\"cgmzcloo\",\"limitIp\":0,\"totalGB\":0,\"expiryTime\":0,\"enable\":true,\"tgId\":\"\",\"subId\":\"jn25gjs56gvw1b7d\"}]}"

THANK U SO MUCH! Its save a lot of day for me really..

@ffaraji
Copy link

ffaraji commented Dec 9, 2023

سلام
چطور می تونم کانفبک کلاینت رو بگیرم با api؟
اگر نمبشه چطور می تونم کانفیگ رو بسازم؟

@mahserin
Copy link

mahserin commented Jan 2, 2024

سلام چطور می تونم کانفبک کلاینت رو بگیرم با api؟ اگر نمبشه چطور می تونم کانفیگ رو بسازم؟

این سوال منم هست اگه جواب بدید ممنون میشم

@mehdikhody
Copy link
Author

برای مثال به ساختار لینک vmess‍‍ نگاه کنید.

vmess://ewogICJ2IjogIjIiLAogICJwcyI6ICJFeGFtcGxlIFRpdGxlIiwKICAiYWRkIjogImV4YW1wbGUuY29tIiwKICAicG9ydCI6IDQ0MywKICAiaWQiOiAiNWExZTBkMzQtMjRjNC00YjhkLTRlOTktMzIxMzQ1NzkxNzQ4IiwKICAibmV0IjogInRjcCIsCiAgInR5cGUiOiAibm9uZSIsCiAgInRscyI6ICJub25lIiwKICAicGF0aCI6ICIvIgp9

از ابتدای لینک vmess:// متوجه می شویم این کانفیگ از vmess‍ استفاده می کند و باقی رشته نیز تنظیمات ما می باشد که بر اساس Base64‍ رمز نگاری شده است. با رمز شکافی این رشته اطلاعات زیر برای ما نمایش داده می شود:

{
  "v": "2",
  "ps": "Example Title",    // Title
  "add": "example.com",    // Domain or Server IP
  "port": 443,    // Inbound Port
  "id": "5a1e0d34-24c4-4b8d-4e99-321345791748",    // UUID
  "net": "tcp",    // Transmission
  "type": "none",
  "tls": "none",
  "path": "/"
}

خوب حالا برای ساخت کانفیگ vmess‍ خودمان باید اطلاعات زیر را ویرایش و بر اساس Base64 رمزنگاری کنیم و به ابتدای آن عبارت vmess:// را اضافه کنیم.
برای ساخت QRCode هم باید این متن را به یک کتابخانه ساخت QRCode‍ بدهید و عکس آن را دریافت کنید.

برای vless و reality هم همین گونه باید مهندسی معکوس کنید. یک لینک را به عنوان نمونه نگاه کنید و اطلاعات آن را با اطلاعات دلخواه خود عوض کنید.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment