Почему я не могу исправить, обновить или удалить созданный мной пакет приложений? - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь изменить требуемую версию движка AppPackage, которую я разместил, используя v2 API автоматизации проектирования.

Я пытался использовать Почтальон и Клиент Forge Node.Я использую документацию Forge в качестве справки.

https://forge.autodesk.com/en/docs/design-automation/v2/reference/http/AppPackages(':id')-PATCH/

Мои учетные данные верны, и у меня есть действительный токен, но по какой-то причине я продолжаю получать статус 404 Not Found иошибка, которая гласит: «AppPackage с именем MyPlugin не принадлежит вам. Вы не можете работать с AppPackage, который вам не принадлежит».Кроме того, я получаю то же сообщение, когда пытаюсь удалить или обновить AppPackage.

Это действительно странно, потому что мне определенно принадлежит этот AppPackage.Я загрузил его с теми же учетными данными, и я могу просмотреть его, выполнив запрос GET для просмотра всех моих пакетов приложений.Кроме того, имя AppPackage является правильным, и я указал правильную область (код: все) при аутентификации.

Почему Design Automation считает, что этот AppPackage не принадлежит мне, и почему я не могу исправить, обновить или удалить его?

ОБНОВЛЕНИЕ 28.03.2009: Установка значения ресурса все еще приводит к той же самой ошибке

ОБНОВЛЕНИЕ 02/2/2019: получение свежего URL загрузки нетоже не работает.Я получаю внутреннюю ошибку сервера, говорящую «Ссылка на объект не установлена ​​для экземпляра объекта».


const ForgeSDK = require('forge-apis');
const oAuth2TwoLegged = new ForgeSDK.AuthClientTwoLegged(FORGE_CLIENT_ID, FORGE_CLIENT_SECRET, SCOPES);
const appPackageApi = new ForgeSDK.AppPackagesApi();

const getToken = () => {
    return oAuth2TwoLegged.authenticate();
};

const getUploadURL = () => {
    return appPackageApi.getUploadUrl(oAuth2TwoLegged, oAuth2TwoLegged.getCredentials());
};

const patchPackage = (id, url) => {

    const appPack = {
        Resource: url,
        RequiredEngineVersion: APP_PACKAGE_REQUIRED_ENGINE
    };

    return appPackageApi.patchAppPackage(id, appPack, oAuth2TwoLegged, oAuth2TwoLegged.getCredentials());
};


(async () => {

    try {
        const token = await getToken();
        const url = await getUploadURL();
        const patchPackRes = await patchPackage(APP_PACKAGE_ID, url);

        if (patchPackRes.statusCode == 201)
            console.log('Patch package succeeded!');
        else
            console.log('Patch package failed!' + patchPackRes.statusCode);

    } catch (ex) {
        console.log('Exception  :(');
        console.log(ex);
    }

})();

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Это должно работать:

const ForgeSDK = require('forge-apis');
const oAuth2TwoLegged = new ForgeSDK.AuthClientTwoLegged(FORGE_CLIENT_ID, FORGE_CLIENT_SECRET, SCOPES);
const appPackageApi = new ForgeSDK.AppPackagesApi();

const getToken = () => {
    return oAuth2TwoLegged.authenticate();
};

const getUploadURL = async (id) => {
    const app =  await appPackageApi.getAppPackage(id, oAuth2TwoLegged, oAuth2TwoLegged.getCredentials());
    return app.body.Resource;
};

const patchPackage = (id, url) => {

    const appPack = {
        Resource: url,
        RequiredEngineVersion: APP_PACKAGE_REQUIRED_ENGINE
    };

    return appPackageApi.patchAppPackage(id, appPack, oAuth2TwoLegged, oAuth2TwoLegged.getCredentials());
};


(async () => {

    try {
        const token = await getToken();
        const url = await getUploadURL(APP_PACKAGE_ID);
        const patchPackRes = await patchPackage(APP_PACKAGE_ID, url);

        if (patchPackRes.statusCode == 201)
            console.log('Patch package succeeded!');
        else
            console.log('Patch package failed!' + patchPackRes.statusCode);

    } catch (ex) {
        console.log('Exception  :(');
        console.log(ex);
    }

})();
0 голосов
/ 27 марта 2019

При вызове PATCH должно быть установлено свойство «Ресурс». Он может быть настроен на тот же URL, что и тот, который вы получаете от GET, но он должен присутствовать и быть действительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...