انتشار نسخهٔ جدید با APIهای مایکت
APIهای پنل توسعهدهندگان امکان خودکارسازی ایجاد بسته، بارگذاری فایل نسخه و ارسال آن برای بررسی را فراهم میکنند. جریان کلی کار:
۱. اطلاعات بستهٔ انتشار را ایجاد یا ویرایش کنید. ۲. فایل APK را بارگذاری کنید. ۳. بسته را برای بررسی و تأیید ارسال کنید.
تمام APIهای این بخش فقط باید از سرور شما فراخوانی شوند. توکن X-Access-Token را در برنامهٔ کلاینت قرار ندهید یا در اختیار دیگران نگذارید.
احراز هویت
برای تمام درخواستها، توکن صحتسنجی برنامه را از پنل توسعهدهندگان دریافت و در هدر X-Access-Token ارسال کنید. در مسیرهای این صفحه، {PACKAGE_NAME} نام پکیج برنامه است.
دریافت فهرست بستهها
- cURL
- Python
curl --get \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle' \
--header 'X-Access-Token: {ACCESS_TOKEN}' \
--data-urlencode 'status={STATUS}' \
--data-urlencode 'offset={OFFSET}' \
--data-urlencode 'limit={LIMIT}'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
params = {"status": "JustCreated", "offset": 1, "limit": 20}
response = requests.get(url, headers=headers, params=params)
print(response.status_code, response.json())
پارامتر status اختیاری است. مقادیر آن عبارتاند از:
JustCreated: بستهٔ تازه ایجادشده که هنوز برای بررسی ارسال نشده است.WaitingForApproval: بسته در حال بررسی است.Rejected: بسته رد شده است.Approved: بسته تأیید شده است.RolledBack: انتشار بسته لغو شده است.
offset برای صفحهبندی و باید بزرگتر از صفر باشد. مقدار limit باید بین 1 تا 20 باشد.
پاسخ شامل eol برای مشخصکردن پایان فهرست و آرایهٔ releases است. هر بسته میتواند شامل عنوان، وضعیت، زمان ایجاد و اطلاعات نسخهها مانند شمارهٔ نسخه، وضعیت تأیید، معماری پردازنده، حداقل SDK و اندازهٔ فایل باشد.
ایجاد یا ویرایش بسته
اگر بستهای برای برنامه وجود داشته باشد، درخواست زیر اطلاعات آن را ویرایش میکند؛ در غیر این صورت بستهٔ جدیدی میسازد:
- cURL
- Python
curl --request PUT \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle' \
--header 'X-Access-Token: {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"title": "عنوان نسخه",
"stagedRolloutPercent": 100,
"translationInfos": [
{
"description": "Release notes in English",
"language": "en"
},
{
"description": "توضیحات نسخه به فارسی",
"language": "fa"
}
]
}'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
payload = {
"title": "عنوان نسخه",
"stagedRolloutPercent": 100,
"translationInfos": [
{"description": "Release notes in English", "language": "en"},
{"description": "توضیحات نسخه به فارسی", "language": "fa"},
],
}
response = requests.put(url, headers=headers, json=payload)
print(response.status_code, response.json())
stagedRolloutPercent درصد کاربرانی را مشخص میکند که نسخهٔ جدید را دریافت میکنند. translationInfos توضیحات انتشار را ب ه تفکیک زبان نگه میدارد.
بارگذاری فایل نسخه
پس از ایجاد بسته، فایل APK را با درخواست PUT و بهصورت multipart/form-data بارگذاری کنید. حجم فایل نباید بیشتر از ۵۰۰ مگابایت باشد؛ برای فایلهای بزرگتر از پنل توسعهدهندگان استفاده کنید.
- cURL
- Python
curl --request PUT \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle/upload' \
--header 'X-Access-Token: {ACCESS_TOKEN}' \
--form '=@app.apk'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle/upload"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
with open("app.apk", "rb") as apk_file:
response = requests.put(
url,
headers=headers,
files={"": ("app.apk", apk_file, "application/vnd.android.package-archive")},
)
print(response.status_code, response.json())
ارسال بسته برای بررسی
پس از تکمیل اطلاعات و بارگذاری فایل، بسته را برای بررسی بفرستید:
- cURL
- Python
curl --request POST \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle/commit' \
--header 'X-Access-Token: {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"isManualPublish": false,
"message": "Please review this release"
}'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle/commit"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
payload = {
"isManualPublish": False,
"message": "Please review this release",
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code, response.json())
اگر isManualPublish برابر false باشد، پس از تأیید مدیر نسخه منتشر میشود. اگر مقدار آن true باشد، پس از تأ یید باید نسخه را بهصورت دستی منتشر کنید. در فیلد message میتوانید پیامی برای مدیر ارسال کنید.
حذف بسته یا لغو درخواست بررسی
برای حذف بستهٔ جاری:
- cURL
- Python
curl --request DELETE \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle' \
--header 'X-Access-Token: {ACCESS_TOKEN}'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
response = requests.delete(url, headers=headers)
print(response.status_code, response.json())
برای لغو درخواست بررسی بسته:
- cURL
- Python
curl --request DELETE \
'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/release-bundle/revert' \
--header 'X-Access-Token: {ACCESS_TOKEN}'
import requests
package_name = "org.example.app"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/release-bundle/revert"
headers = {"X-Access-Token": "YOUR_ACCESS_TOKEN"}
response = requests.delete(url, headers=headers)
print(response.status_code, response.json())
درخواستهای موفق با کد 200 پاسخ داده میشون د. بستهٔ ناموجود، دسترسی نداشتن به برنامه، اطلاعات ناقص یا نسخهٔ در حال بررسی میتواند باعث خطا شود.