6

Ho implementato i pagamenti nella mia app Unity e ho definito i prodotti in formato HTML nel mio server, e li ho scansionati con lo strumento di debug di FB. I prodotti sono identici all'esempio di pagamento di Facebook oltre al prezzo e alla denominazione, oltre al link fotografico.Codice errore API 1383146 nell'API di Facebook Canvas per Unity mentre si effettua il pagamento

Eppure, quando corro FB.Canvas.Buy dopo la distribuzione l'applicazione per Canvas, ottengo il seguente errore:

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

Questo errore non ha alcuna documentazione che riesco a trovare su qualsiasi motore di ricerca o su La documentazione di Facebook

Qualsiasi aiuto sarebbe apprezzato, grazie.

+0

Hai bisogno di più codice per vedere come aggiorni i dati. – K3N

risposta

1

ho trovato il problema era che stavo passando il URL effettivo del prodotto HTML nella finestra di pagamento, piuttosto che l'oggetto grafico ID.

Quando si utilizza l'ID oggetto grafico, sono finalmente in grado di eseguire acquisti.

1

Ho incontrato lo stesso codice di errore 1383146 e ho trovato la causa principale. All'inizio prevedo che l'URL del prodotto sarà il mio URL corrente più product.html. Per esempio. La mia pagina è https://a.b.c/def/ e mi aspetto FB per analizzare la mia pagina del prodotto 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) { 
     ... 
    }); 

ma ho trovato FB aggiungerà stringa di query quando il POST alla mia URL della pagina di tela in alcuni casi. L'URL diventerà https://a.b.c/def/?fb_source=search&ref=ts&fref=ts. Quindi il mio codice sarà sbagliato perché io uso window.location.href. Quindi aggiorno il codice e non incontro mai il problema 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) { 
     ... 
    }); 
0

Nel mio caso, il raschietto Facebook non ha potuto raggiungere il web server che ospita i prodotti (che potrebbe essere raggiunto solo dal nostro ufficio, che non conoscevo). In tal caso, Facebook costruisce un oggetto predefinito di tipo sito Web e quindi si lamenta di ciò.

È possibile vederlo in azione con Facebook Sharing Debugger. Inserisci l'URL del tuo prodotto e premi i pulsanti "Debug" e forse "Scrape Again". Mostrerà "Avvisi che dovrebbero essere risolti". Per impostazione predefinita mostrerà solo il primo avviso, assicurati di mostrare tutti gli avvertimenti. Per me, uno di quegli avvertimenti più in basso era "Can not Connect To Server". Quindi questo era il vero problema

Problemi correlati