Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API отправки в Microsoft Store предоставляет методы, которые можно использовать для управления отправкой дополнений (также известных как встроенные продукты или IAP) для ваших приложений. Для получения общей информации об API подачи заявок в Microsoft Store, включая предварительные требования для использования API, см. статью Создание и управление подачами заявок с помощью служб Microsoft Store.
Это важно
Если вы используете API отправки Microsoft Store для создания отправки надстройки, обязательно внесите дальнейшие изменения только с помощью API, а не вносить изменения в Центр партнеров. Если вы используете Центр партнеров для изменения отправки, созданной с помощью API, вы больше не сможете изменить или зафиксировать эту отправку с помощью API. В некоторых случаях отправка может оставаться в ошибочном состоянии, не позволяющем продолжить процесс. В этом случае необходимо удалить отправку и создать новую отправку.
Методы управления отправкой надстроек
Используйте следующие методы, чтобы получить, создать, обновить, зафиксировать или удалить заявку на надстройку. Прежде чем использовать эти методы, надстройка должна уже существовать в учетной записи Центра партнеров. Вы можете создать надстройку в Центре партнеров, определив тип продукта и идентификатор продукта или используя методы API отправки Microsoft Store, описанные в разделе Управление надстройками.
| Метод | УРИ | Описание |
|---|---|---|
| ПОЛУЧАЙ | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | Получить существующую заявку на добавление |
| ПОЛУЧАЙ | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/status | Узнать статус уже отправленного дополнения |
| ПОСТ | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions | Создание новой отправки надстройки |
| ПОСТАВИТЬ | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | обновление заявки существующей надстройки |
| ПОСТ | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commit | Отправка новой или обновленной версии поданной заявки дополнения |
| Удалить | https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId} | Удаление заявки на дополнение |
Создание заявки на дополнение
Чтобы создать заявку для надстройки, следуйте этому процессу.
Если вы еще не сделали этого, выполните предварительные требования, описанные в разделе Создание и управление отправками с помощью служб Microsoft Store, включая связывание приложения Azure AD с учетной записью Центра партнеров и получение идентификатора клиента и ключа. Это нужно сделать только один раз; После того как у вас есть идентификатор клиента и ключ, их можно повторно использовать в любое время, когда необходимо создать новый маркер доступа Azure AD.
Получите токен доступа Azure AD. Этот маркер доступа необходимо передать методам в API для отправки в Microsoft Store. После получения маркера доступа у вас есть 60 минут, чтобы использовать его до истечения срока действия. После истечения срока действия токена можно получить новый токен.
Выполните следующий метод в API Microsoft Store для отправки. Этот метод создает новую заявку в процессе, которая является копией вашей последней опубликованной заявки. Дополнительные сведения см. в статье Создание отправки надстройки.
POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissionsТекст ответа содержит ресурс отправки надстроек, содержащий идентификатор новой отправки, универсальный код ресурса (URI) подписанного URL-адреса (SAS) для отправки всех значков надстройки для отправки в хранилище BLOB-объектов Azure, а также все данные для новой отправки (например, списки и сведения о ценах).
Замечание
URI SAS предоставляет доступ к защищенному ресурсу в службе хранилища Azure, не требуя ключей учетной записи. Дополнительные сведения о URI SAS и их использовании с BLOB-хранилищем Azure см. в Подписаные строки доступа, часть 1: Общие сведения о модели SAS и Подписаные строки доступа, часть 2: Создание и использование SAS с BLOB-хранилищем.
Если вы добавляете новые иконки для отправки, подготовьте иконки и добавьте их в ZIP-архив.
Обновите отправку надстройки с любыми необходимыми изменениями для новой отправки и выполните следующий метод, чтобы обновить отправку. Дополнительные сведения см. в разделе Обновление отправки надстройки.
PUT https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}Замечание
Если вы добавляете новые значки для отправки, обязательно обновите данные отправки, чтобы ссылаться на имя и относительный путь к этим файлам в ZIP-архиве.
Если вы добавляете новые значки для отправки, загрузите ZIP-архив в Blob-хранилище Azure с помощью URI SAS, предоставленного в теле ответа метода POST, который вы вызвали ранее. Существуют различные библиотеки Azure, которые можно использовать для этого на различных платформах, в том числе:
- клиентская библиотека службы хранилища Azure для .NET
- Azure Storage SDK для Java
- SDK службы хранилища Azure для Python
В следующем примере кода C# показано, как отправить ZIP-архив в хранилище BLOB-объектов Azure с помощью класса CloudBlockBlob в клиентской библиотеке службы хранилища Azure для .NET. В этом примере предполагается, что ZIP-архив уже записан в объект потока.
string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl"; Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob = new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl)); await blockBob.UploadFromStreamAsync(stream);Зафиксируйте отправку, выполнив следующий метод. При этом центр партнеров будет оповещен о том, что вы выполнили отправку и что обновления теперь должны применяться к вашей учетной записи. Дополнительные сведения см. в разделе Подтверждение отправки дополнения.
POST https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/commitПроверьте статус коммита, выполнив следующий метод. Дополнительные сведения см. в статье Получение состояния отправки надстройки.
GET https://manage.devcenter.microsoft.com/v1.0/my/inappproducts/{id}/submissions/{submissionId}/statusЧтобы подтвердить статус отправки, просмотрите значение статуса в тексте ответа. Это значение должно измениться с CommitStarted на PreProcessing, если запрос выполнен успешно, или на CommitFailed, если в запросе есть ошибки. Если возникают ошибки, поле statusDetails содержит дополнительные сведения об ошибке.
После успешного завершения коммита данные отправляются в магазин для обработки. Вы можете продолжать отслеживать ход отправки с помощью предыдущего метода или посетить Центр партнеров.
Примеры кода
В следующих статьях приведены подробные примеры кода, демонстрирующие, как создать публикацию дополнения на нескольких разных языках программирования:
- Примеры кода C#
- примеры кода Java
- Примеры кода на Python
Модуль StoreBroker PowerShell
В качестве альтернативы вызову API отправки Microsoft Store напрямую мы также предоставляем модуль PowerShell с открытым исходным кодом, который реализует интерфейс командной строки на вершине API. Этот модуль называется StoreBroker. Этот модуль можно использовать для управления отправкой приложений, тестовых версий и надстроек из командной строки вместо непосредственного обращения к API отправки Microsoft Store, или вы можете просто просмотреть исходный код, чтобы увидеть дополнительные примеры вызова этого API. Модуль StoreBroker активно используется в Корпорации Майкрософт в качестве основного способа отправки многих сторонних приложений в Магазин.
Для получения дополнительной информации см. страницу StoreBroker на GitHub.
Ресурсы данных
Методы API для отправки Microsoft Store для управления отправками дополнений используют следующие ресурсы данных JSON.
Ресурс подачи дополнения
Этот ресурс описывает отправку дополнения.
{
"id": "1152921504621243680",
"contentType": "EMagazine",
"keywords": [
"books"
],
"lifetime": "FiveDays",
"listings": {
"en": {
"description": "English add-on description",
"icon": {
"fileName": "add-on-en-us-listing2.png",
"fileStatus": "Uploaded"
},
"title": "Add-on Title (English)"
},
"ru": {
"description": "Russian add-on description",
"icon": {
"fileName": "add-on-ru-listing.png",
"fileStatus": "Uploaded"
},
"title": "Add-on Title (Russian)"
}
},
"pricing": {
"marketSpecificPricings": {
"RU": "Tier3",
"US": "Tier4",
},
"sales": [],
"priceId": "Free",
"isAdvancedPricingModel": true
},
"targetPublishDate": "2016-03-15T05:10:58.047Z",
"targetPublishMode": "Immediate",
"tag": "SampleTag",
"visibility": "Public",
"status": "PendingCommit",
"statusDetails": {
"errors": [
{
"code": "None",
"details": "string"
}
],
"warnings": [
{
"code": "ListingOptOutWarning",
"details": "You have removed listing language(s): []"
}
],
"certificationReports": [
{
}
]
},
"fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl",
"friendlyName": "Submission 2"
}
Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| идентификатор | струна | Идентификатор отправки. Этот идентификатор доступен в данных ответа на запросы: для создания отправки надстройки, для получения всех надстроеки для получения одной надстройки. Для отправки, созданной в Центре партнеров, этот идентификатор также доступен в URL-адресе страницы отправки в Центре партнеров. |
| Тип контента | струна | Тип содержимого , которое предоставляется в этом дополнении. Это может быть одно из следующих значений:
|
| ключевые слова | массив | Массив строк, содержащих до 10 ключевых слов для дополнения. Приложение может запрашивать надстройки с помощью этих ключевых слов. |
| продолжительность жизни | струна | Срок службы надстройки. Это может быть одно из следующих значений:
|
| Списки | объект | Словарь пар "ключ и значение", где каждый ключ представляет собой двухбуквенный код страны ISO 3166-1 альфа-2, а каждое значение — это список ресурсов, содержащих сведения о списке для надстройки. |
| ценообразование | объект | ресурс ценообразования, содержащий сведения о ценах для надстройки. |
| Режим Целевой Публикации | струна | Режим публикации для подачи документов. Это может быть одно из следующих значений:
|
| целевая_дата_публикации | струна | Дата публикации для отправки в формате ISO 8601, если targetPublishMode имеет значение SpecificDate. |
| тег | струна | Настраиваемые данные разработчика для плагина (эта информация ранее называлась тегом ). |
| видимость | струна | Видимость дополнения. Это может быть одно из следующих значений:
|
| статус | струна | Статус заявки. Это может быть одно из следующих значений:
|
| Детали статуса | объект | Ресурс информации о статусе , содержащий дополнительные сведения о статусе отправки, включая информацию об ошибках. |
| fileUploadUrl | струна | URI общего доступа с подписью (SAS) для загрузки любых пакетов для подачи. Если вы добавляете новые пакеты для отправки, отправьте ZIP-архив, содержащий пакеты в этот URI. Дополнительные сведения см. в статье Создание отправки надстройки. |
| дружественноеИмя | струна | Удобочитаемое имя отправки, как показано в центре партнеров. Это значение генерируется для вас при создании отправки. |
Перечисление ресурса
Этот ресурс содержит информацию о списке для надстройки. Этот ресурс имеет следующие значения.
Ресурс значка
Этот ресурс содержит данные значка для списка дополнений. Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| имя файла | струна | Имя файла значка в ZIP-архиве, загруженном для подачи. Значок должен быть файлом .png, который измеряет ровно 300 x 300 пикселей. |
| статус файла | струна | Состояние файла значка. Это может быть одно из следующих значений:
|
Ресурс ценообразования
Этот ресурс содержит информацию о ценах для расширения. Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| ценообразование для конкретного рынка | объект | Словарь пар ключ-значение, где каждый ключ — это двухбуквенный код страны ISO 3166-1 alpha-2, а каждое значение — это ценовой уровень. Эти элементы представляют пользовательские цены для вашей надстройки на определенных рынках. Все элементы в этом словаре переопределяют базовую цену, указанную значением priceId для указанного рынка. |
| продажи | массив | устаревшее. Массив ресурсов продаж, содержащих информацию о продажах для дополнения. |
| priceId | струна | ценовой категории |
| isРасширеннаяМодельЦенообразования | булевый | Если true, ваша учетная запись разработчика имеет доступ к расширенному числу ценовых категорий от 0,99 долларов США до 1999,99 долларов США. Если false, ваша учетная запись разработчика имеет доступ к исходному набору ценовых категорий от 0,99 долл. США до 999,99 долл. США. Для получения дополнительной информации о разных уровнях цен см. . примечание Это поле доступно только для чтения. |
Ресурс для продаж
Этот ресурс содержит информацию о продаже дополнения.
Это важно
Ресурс данных о продаже больше не поддерживается, и в настоящее время невозможно получить или изменить данные о продаже для публикации дополнения с помощью API отправки Microsoft Store. В будущем мы обновим API отправки Microsoft Store, чтобы создать новый способ программного доступа к данным о продажах для отправки надстроек.
- После вызова метода GET для полученияотправки надстройки значение продаж будет пустым. Вы можете продолжать использовать Центр партнеров для получения данных о продажах для отправки надстройки.
- При использовании метода PUT для обновления публикации надстроекинформация в значении параметра продажи игнорируется. Вы можете продолжать использовать Центр партнеров для изменения информации о продажах при отправке дополнения.
Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| имя | струна | Название распродажи. |
| ИдентификаторБазовойЦены | струна | Ценовая категория использовать для базовой цены продажи. |
| Дата начала | струна | Дата начала продажи в формате ISO 8601. |
| Дата окончания | струна | Дата окончания продажи в формате ISO 8601. |
| ценообразование для конкретного рынка | объект | Словарь пар ключ-значение, где каждый ключ — это двухбуквенный код страны ISO 3166-1 alpha-2, а каждое значение — это ценовой уровень. Эти элементы представляют пользовательские цены для вашей надстройки на определенных рынках. В этом словаре все элементы переопределяют базовую цену, установленную значением basePriceId для указанного рынка. |
Ресурс подробностей о статусе
Этот ресурс содержит дополнительные сведения о состоянии отправки. Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| Ошибки | объект | Массив ресурсов деталей состояния , содержащих сведения об ошибках, связанных с отправкой. |
| Предупреждения | объект | Массив ресурсов сведений о состоянии , которые содержат детали предупреждений для отправки. |
| отчёты о сертификации | объект | Массив ресурсов отчета о сертификации , которые предоставляют доступ к данным отчета о сертификации для представления. Эти отчеты можно просмотреть для получения дополнительных сведений, если сертификация не удалась. |
Ресурс сведений о состоянии
Этот ресурс содержит дополнительные сведения о любых связанных ошибках или предупреждениях в представленной работе. Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| код | струна | Код состояния отправки , описывающий тип ошибки или предупреждения. |
| подробности | струна | Сообщение с дополнительными сведениями о проблеме. |
Ресурс отчета о сертификации
Этот ресурс предоставляет доступ к данным отчета о сертификации для отправки. Этот ресурс имеет следующие значения.
| Ценность | Тип | Описание |
|---|---|---|
| дата | струна | Дата и время создания отчета в формате ISO 8601. |
| ссылка на отчет | струна | URL-адрес, по которому можно получить доступ к отчету. |
Перечисления
Эти методы используют следующие перечисления.
Ценовые категории
Следующие значения представляют доступные ценовые категории в ресурсе ценообразования для отправки надстройки.
Код состояния отправки
Следующие значения представляют код состояния отправки.
| Ценность | Описание |
|---|---|
| Отсутствует | Код не указан. |
| Недействительный архив | ZIP-архив, содержащий пакет, является недопустимым или имеет нераспознанный формат архива. |
| MissingFiles | ZIP-архив не содержит все файлы, которые были указаны в данных отправки, или они находятся в неправильном расположении в архиве. |
| Ошибка проверки пакета | Один или несколько пакетов в вашей отправке не прошли проверку. |
| НеверноеЗначениеПараметра | Один из параметров в тексте запроса недопустим. |
| Недопустимая операция | Операция, которую вы попытались выполнить, недействительна. |
| НедопустимоеСостояние | Предпринятая операция недопустима для текущего состояния пакетного полета. |
| Ресурс не найден | Не удалось найти указанный полет пакета. |
| Ошибка сервиса | Внутренняя ошибка службы предотвратила успешное выполнение запроса. Повторите запрос. |
| Предупреждение об отказе от листинга | Разработчик удалил список из предыдущей отправки или не включал сведения о списке, поддерживаемые пакетом. |
| Предупреждение о подписке на листинг | Разработчик добавил объявление. |
| Предупреждение только об обновлениях | Разработчик пытается вставить то, что поддерживает только обновления. |
| Другое | Отправка находится в нераспознанном или некатегоризованном состоянии. |
| Предупреждение проверки пакета | Процесс проверки пакета привел к предупреждению. |