Aggiunta dell'SDK per le estensioni di Messenger

L'SDK per le estensioni di Messenger offre eccezionali funzioni specifiche per Messenger per le app web o i siti web aperti nella visualizzazione web di Messenger. Grazie all'SDK, puoi recuperare le informazioni sulla persona che ha aperto la visualizzazione web, condividere contenuti nelle conversazioni su Messenger ed effettuare un'integrazione approfondita con l'interfaccia utente di Messenger.

Funzioni disponibili

Sono disponibili le seguenti funzioni nella visualizzazione web di Messenger quando includi l'SDK per le estensioni di Messenger. Tieni presente che l'effettiva disponibilità delle funzioni potrebbe variare in base alla versione di Messenger e al dispositivo.

FunzioneDescrizione

getContext()

Consente di recuperare il contesto della conversazione, come il PSID della persona che ha aperto la visualizzazione web.

requestCloseBrowser()

Consente di chiudere la visualizzazione web e tornare alla conversazione su Messenger.

askPermission()

Consente di richiedere l'autorizzazione per eseguire azioni come il recupero delle informazioni del profilo di una persona.

getGrantedPermissions()

Consente di controllare le autorizzazioni concesse al momento.

getSupportedFeatures

Consente di controllare le funzioni supportate nella visualizzazione web del dispositivo corrente, come la condivisione.

Per i dettagli completi sull'uso di queste funzioni, consulta il riferimento per l'SDK per le estensioni di Messenger.

Installazione dell'SDK

1. Autorizzazione del dominio

Per utilizzare le estensioni di Messenger nel tuo bot, devi prima autorizzare il dominio da cui viene mostrata la pagina; per motivi di sicurezza, tutti i domini della tua pagina web devono essere aggiunti ai domini autorizzati. Per maggiori dettagli, consulta la documentazione di riferimento sull'aggiunta ai domini autorizzati.

Puoi autorizzare facilmente un dominio in modo programmatico grazie alla seguente API:

 
curl -X POST -H "Content-Type: application/json" -d '{
  "whitelisted_domains":[
    "https://petersfancyapparel.com"
  ]
}' "https://graph.facebook.com/v21.0/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN"

Se l'operazione è stata eseguita correttamente, l'API Messenger Profile risponderà:

{"result":"success"}

2. Inclusione dell'SDK JavaScript per le estensioni di Messenger

Aggiungi l'SDK JavaScript per le estensioni di Messenger alla pagina in caricamento nella visualizzazione web con il codice indicato di seguito. Devi inserirlo direttamente dopo il tag body di apertura su ciascuna pagina in cui desideri venga caricato:

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/messenger.Extensions.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'Messenger'));

3. Attesa dell'evento di caricamento dell'SDK

window.extAsyncInit() riceve una chiamata al termine del caricamento dell'SDK JavaScript per le estensioni di Messenger. Puoi usarlo per attivare le chiamate alle altre funzioni disponibili nell'SDK.

window.extAsyncInit = function() {
  // the Messenger Extensions JS SDK is done loading 
};

Uso dell'SDK nel client web di Messenger

L'SDK per le estensioni di Messenger è supportato per l'uso sui client mobili e per computer di Messenger. Tuttavia, potresti dover prendere in considerazione quanto segue per garantirne il corretto funzionamento.

Puoi anche utilizzare la proprietà window.name per controllare la posizione dell'iframe dal codice lato client.

Quando l'iframe viene attivato su Messenger sul web, impostiamo window.name su "messenger_ref". Altrimenti, durante il caricamento nelle tab Chat di Facebook, window.name sarà "facebook_ref".

Funzioni non supportate

Le seguenti impostazioni o funzioni non sono supportate sui client web di Messenger. Tuttavia, funzionano correttamente sui client mobili di Messenger.

Risoluzione dei problemi

Se non riesci a chiamare l'SDK per le estensioni di Messenger dalla tua pagina, prendi in considerazione quanto segue:

  • Quando apri la visualizzazione web dal menu always-on o da un pulsante, assicurati che il parametro messenger_extensions sia impostato su true. Se un utente ha aperto la visualizzazione web tramite un messaggio condiviso, affinché le estensioni di Messenger funzionino non è necessario che l'utente abbia conversato con il tuo bot.
  • Controlla di aver autorizzato il dominio in cui è ospitata la pagina.

  • Controlla che l'SDK JavaScript sia incluso in ogni pagina che utilizza le estensioni.

  • Assicurati di non chiamare le funzioni prima del termine del caricamento dell'SDK. Usa l'elemento window.extAsyncInitdescritto qui per verificare il completamento del caricamento.

  • Assicurati che la pagina venga mostrata in HTTPS e che non includa porte non standard.