Код ошибки API 1383146 в Facebook Canvas API для Unity при совершении платежа

Я реализовал платежи в своем приложении Unity и определил продукты в HTML-форме на своем сервере и просканировал их с помощью инструмента отладки FB. Продукты идентичны примерам платежей Facebook, за исключением цены и названия, а также ссылки на фотографию.

Тем не менее, когда я запускаю FB.Canvas.Buy после развертывания приложения на Canvas, я получаю следующую ошибку:

An error occurred. Please try again later.
API Error Code: 1383146
API Error Description: invalid og type. Expected og:product, got website

Эта ошибка не имеет документации, которую я могу найти в любой поисковой системе или в собственной документации Facebook.

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


person Yaron Mushinsky    schedule 07.12.2014    source источник
comment
Нужно больше кода, чтобы увидеть, как вы обновляете данные.   -  person    schedule 09.12.2014


Ответы (3)


Я обнаружил, что проблема заключалась в том, что я передавал фактический URL HTML-продукта в диалоговое окно оплаты, а не идентификатор графического объекта.

При использовании идентификатора графического объекта я наконец-то могу совершать покупки.

person Yaron Mushinsky    schedule 11.12.2014

Я встречаю тот же код ошибки 1383146 и нашел основную причину. В начале я ожидаю, что URL-адрес продукта будет моим текущим URL-адресом плюс product.html. Например. Моя страница https://a.b.c/def/, и я ожидаю, что FB проанализирует мою страницу продукта https://a.b.c/def/product.html

    var productURL = window.location.href + 'product.html';

    var obj = {
      method: 'pay',
      action: 'purchaseitem',
      product: productURL
    };

    FB.ui(obj, function(data) {
      ...
    });

Но я обнаружил, что FB в некоторых случаях добавит строку запроса, когда POST к URL-адресу моей страницы холста. URL станет https://a.b.c/def/?fb_source=search&ref=ts&fref=ts. Тогда мой код будет неправильным, потому что я использую window.location.href. Поэтому я обновляю код и никогда не сталкиваюсь с проблемой 1383146.

    var productURL = window.location.protocol + "//" + window.location.host + window.location.pathname + 'product.html';

    var obj = {
      method: 'pay',
      action: 'purchaseitem',
      product: productURL
    };

    FB.ui(obj, function(data) {
      ...
    });
person Hung Weichien    schedule 02.07.2015

В моем случае парсер Facebook не смог добраться до веб-сервера, на котором размещены продукты (до него можно было добраться только из нашего офиса, чего я не знал). В этом случае Facebook создает объект типа веб-сайт по умолчанию, а затем жалуется на это.

Вы можете увидеть это в действии с помощью отладчика Facebook Sharing Debugger. Введите URL-адрес вашего продукта и нажмите кнопку «Отладка» и, возможно, «Очистить снова». Он покажет «Предупреждения, которые следует исправить». По умолчанию будет отображаться только первое предупреждение, убедитесь, что вы показываете все предупреждения. Для меня одним из этих предупреждений ниже было «Не удается подключиться к серверу». Так это была НАСТОЯЩАЯ проблема

person Mattijs van Delden    schedule 20.07.2016