Как исправить ошибку 822 неожиданного токена на "json"? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть файл VBA, который годами работал с функцией POST to API для создания продуктов на Shopify. Он внезапно и по неизвестной причине перестал работать примерно 15 апреля 2019 года. Выдает следующую ошибку:

«ошибка»: «822: неожиданный токен в [моей строке JSON]

Вот как выглядит строка JSON (более полную можно найти в конце этого поста):

{
  "product": {
    "title": "Lunettes",
    "body_html": "some long text",
    "vendor": "Tom Ford",
    "product_type": "lunettes enfant adolescents",
    "published": false,
    "tags": "some tags",
    "variants": [
      {
        "option1": "default title",
        "price": "199",
        "sku": "1",
        "weight_unit": "g"
      }
    ],
    "options": [
      {
        "name": "title",
        "position": 1,
        "values": [
          "default title"
        ]
      }
    ]
  }
}

Что я уже пробовал:

  • проверка URL с правильным ключом API и токеном / паролем

  • попытался добавить последнюю версию Shopify API к CURL: 2019-04

  • проверка синтаксиса строки JSON (запятая, {и т. Д.)

В основном перепробовал все, что знал. Пожалуйста, помогите, если у вас есть какие-либо подсказки.

более полная Json_String:

{"product":{"title":"Lunettes TF5501 ","body_html":"TEXT,<div style=\"text-align: center;\"><img alt=\"Dimensions Lunettes Varionet TF5501 Argent\" src=\"https://cdn.shopify.com/s/files/1/0855/6878/files/Lunettes.png?15354686291941720795\" style=\"float: none; display: block; margin-left: auto; margin-right: auto;\" /></div><div style=\"overflow-x: auto;\"> <table width=\"100%\"> <tbody><tr style=\"background-color: #98ffaf;\"><td style=\"text-align: center;\">140 mm</td><td style=\"text-align: center;\">54 mm</td><td style=\"text-align: center;\">38 mm</td><td style=\"text-align: center;\">18 mm</td><td style=\"text-align: center;\">145 mm</td></tr></tbody></table></div>","vendor":"Brand","product_type":"lunettes anti lumière bleue","published":false,"tags":"meta-filter-Marque-Varionet,meta-filter-Forme-Rectangle,meta-filter-Genre-Unisex,meta-filter-Genre-Homme,meta-filter-Genre-Femme,meta-filter-Couleur-Argent","variants":[{"option1":"default title","price":"199","sku":"tom ford tf5501016","position":1,"grams":"100","inventory_policy":"deny","compare_at_price":"339","fulfillment_service":"logisticien-mavu","inventory_management":"shopify","option_1":"default title","requires_shipping":true,"taxable":true,"inventory_quantity":1,"weight_unit":"g"}],"options":[{"name":"title","position":1,"values":["default title"] }]
}}

Спасибо!

1033 * Youri *

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Спасибо за ваши ответы

@ Дэвид: я видел ссылку https://community.shopify.com/c/Shopify-APIs-SDKs/error-gt-822-unexpected-token-at-price-rule/td-p/480430, но я не понимаю, где и как я должен использовать 'X-Shopify-Access-Token' в коде VBA, если он будет добавлен в объект objHTTP.setRequestHeader? Это ключ API, пароль или «общий секрет»?

@ QHarr: мои параметры публикации:

Dim result As String
Dim objHTTP As Object
Url = "http://API-KEY:PASSWORD@SHOP-NAME.myshopify.com/admin/api/2019-04/products.json"

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")

objHTTP.Open "POST", Url, False, "API-KEY", "PASSWORD"
objHTTP.setRequestHeader "Content-Type", "application/json"


objHTTP.send ("json_string")

result = objHTTP.responseText
0 голосов
/ 20 мая 2019

Первый JSON, который вы предоставили (пожалуйста, исправьте его в блок кода), верен, но при разборе более полной Json_string вы увидите, что в конце у вас слишком много фигурных скобок:

{
    "product": {
        "title": "Lunettes TF5501 ",
        "body_html": "TEXT,https://cdn.shopify.com/s/files/1/0855/6878/files/Lunettes.png?15354686291941720795\" style=\"float: none; display: block; margin-left: auto; margin-right: auto;\" /> 140 mm54 mm38 mm18 mm145 mm",
        "vendor": "Brand",
        "product_type": "lunettes anti lumière bleue",
        "published": false,
        "tags": "meta-filter-Marque-Varionet,meta-filter-Forme-Rectangle,meta-filter-Genre-Unisex,meta-filter-Genre-Homme,meta-filter-Genre-Femme,meta-filter-Couleur-Argent",
        "variants": [{
            "option1": "default title",
            "price": "199",
            "sku": "tom ford tf5501016",
            "position": 1,
            "grams": "100",
            "inventory_policy": "deny",
            "compare_at_price": "339",
            "fulfillment_service": "logisticien-mavu",
            "inventory_management": "shopify",
            "option_1": "default title",
            "requires_shipping": true,
            "taxable": true,
            "inventory_quantity": 1,
            "weight_unit": "g"
        }],
        "options": [{
            "name": "title",
            "position": 1,
            "values": ["default title"]
        }]
    }
}
}
}

Попробуйте удалить последние 2 фигурные скобки

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