Autodesk Design Automation API DWG в PDF с использованием Dropbox

Здравствуйте, я изо всех сил пытаюсь найти рабочий пример того, как преобразовать файл DWG в файл PDF. Я использую Autodesk Design Automation API и Dropbox. Я пытаюсь использовать следующую команду, чтобы разместить WorkItem

{
"Arguments":{
"InputArguments":[
   {
      "Resource": "https://content.dropboxapi.com/2/files/download",
      "Name": "HostDwg",
      "Headers":[
        {
         "Name":"Authorization",
         "Value":"Bearer xxxxxxxxxxxxxxxxxxxxxxxx"

        },{
          "Name":"Dropbox-API-Arg",
          "Value" : {"path":"/original.dwg"}

        }
        ]
   }
],
"OutputArguments":[
   {
      "Name": "Result",
      "HttpVerb": "PUT",
      "Resource": "https://content.dropboxapi.com/2/files/upload",
      "StorageProvider": "Generic",
      "Headers":[
        {
         "Name":"Authorization",
         "Value":"Bearer xxxxxxxxxxxxxx"

        },{
         "Name":"Dropbox-API-Arg",
         "Value": {"path":"/test.pdf"}   

        }

                                    ]

   }
                                          ]
                  },   "ActivityId": "PlotToPDF","Id": ""}

К сожалению я получаю следующее сообщение об ошибке

An unexpected 'StartObject' node was found for property named 'Value' when reading from the JSON reader. A 'PrimitiveValue' node was expected.

Я думаю, что это связано со вторым заголовком, который я определил, чтобы указать файл для загрузки или выгрузки. Мне непонятно, как правильно установить это значение. Если я использую Dropbox API без Design Automation API, это работает. Я могу определить заголовок с именем Dropbox-API-Arg и определить путь для загрузки / выгрузки.

Любая помощь будет оценена. Спасибо

3 ответа

Проблема в том, что мы ожидаем, что "Value" будет строкой, а вы передаете объект. Вот рабочий пример:

{
  "Arguments": {
    "InputArguments": [
      {
        "Resource": "http://download.autodesk.com/us/samplefiles/acad/blocks_and_tables_-_imperial.dwg",
        "Name": "HostDwg"
      }
    ],
    "OutputArguments": [
      {
        "Name": "Result",
        "HttpVerb": "POST",
        "Resource": "https://content.dropboxapi.com/2/files/upload",
        "Headers" : [
            {
                "Name" : "Authorization",
                "Value" : "Bearer ..."
            },
            {
                "Name":"Content-Type",
                "Value":"application/octet-stream"
            },
            {
                "Name" : "Dropbox-API-Arg",
                "Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"
            }
            ]
      }
    ]
  },
  "ActivityId": "PlotToPDF"
}

Мы улучшили автоматизацию проектирования, чтобы теперь использовать Dropbox-API-Arg заголовок работает как для загрузки, так и для скачивания. Следующее преобразует DWG в PDF в вашей учетной записи Dropbox:

{
  "Arguments": {
    "InputArguments": [
      {
        "Resource": "https://content.dropboxapi.com/2/files/download",
        "Name": "HostDwg",
        "Headers" : [
          {
            "Name" : "Authorization",
            "Value" : "Bearer ..."
          },
          {
            "Name" : "Dropbox-API-Arg",
            "Value" : "{\"path\":\"/test/test.dwg\"}"
          }
          ]
      }
    ],
    "OutputArguments": [
      {
        "Name": "Result",
        "HttpVerb": "POST",
        "Resource": "https://content.dropboxapi.com/2/files/upload",
        "Headers" : [
          {
            "Name" : "Authorization",
            "Value" : "Bearer ..."
          },
          {
              "Name" : "Content-Type",
              "Value" : "application/octet-stream"
          },
          {
            "Name" : "Dropbox-API-Arg",
            "Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"
          }
          ]
      }
    ]
  },
  "ActivityId": "PlotToPDF"
}

ИЗДАНО Либо вы можете пройти Dropbox-API-Arg заголовок, как показано ниже

"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"

в полезной нагрузке.

Или, проходя arg URL-кодированная строка также будет работать.

Используйте следующую полезную нагрузку для работы с Dropbox с помощью Forge Design Automation. Вам нужно передать параметр Arg вместо заголовка Dropbox-API-Arg.

arg={"path":"/result.pdf"} закодировано в URL как "arg=%7B%22path%22%3A%22%2Fresult.pdf%22%7D"

Например:

Чтобы опубликовать результат. PDF в Dropbox.

{
    "Arguments": {
        "InputArguments": [
            {
                "Resource": "http://download.autodesk.com/us/samplefiles/acad/blocks_and_tables_-_metric.dwg",
                "Name": "HostDwg"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST",
                "Resource": "https://content.dropboxapi.com/2/files/upload?arg=%7B%22path%22%3A%22%2Fresult.pdf%22%7D",
                "StorageProvider": "Generic",
                "Headers": [
                    {
                        "Name":"Authorization",
                        "Value":"Bearer blahblahblah"
                    },
                    {"Name":"Content-Type",
                     "Value":"application/octet-stream"
                    }
                ]
            }
        ]
    },
    "ActivityId": "PlotToPDF"
}
Другие вопросы по тегам