2016-05-31 19 views
6

So che ci sono varie carte CTA che i bot di Facebook possono usare come visto here.Data picker card per Facebook Messenger bot

Ciò di cui ho veramente bisogno è una scheda DatePicker che può essere inviata all'utente dove è possibile scegliere una data e inviarla indietro. È possibile utilizzare i bot di Facebook?

risposta

4

Facebook Messenger non ha avviato la selezione di data e ora nei suoi modelli.

Ma puoi renderlo proprietario con l'aiuto di webview and Extensions.

Seguire questi passaggi.

Crea pulsante o modello generico e mettere un pulsante con

"buttons":[ 
      { 
      "type":"web_url", 
      "url":"http://my_url_which_open_date_picker", 
      "title":"Select date", 
      "messenger_extensions": true, 
      "webview_height_ratio": "compact" 
      } 
    ] 

sostituire un URL con il vostro URL.
NOTA: url deve essere nella whitelist Dominio

Ora in quella pagina Web è possibile ottenere l'ID utente di quell'utente particolare e coulsare facilmente le sue azioni per la selezione della data.

Nella pagina

<script> 
(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.com/en_US/messenger.Extensions.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'Messenger')); 
</script>  

Quando il Messaggero estensioni JS SDK è fatto carico, chiamerà window.extAsyncInit e si otterrà userId in quella funzione.

<script> 
    window.extAsyncInit = function() { 
     // the Messenger Extensions JS SDK is done loading 
     MessengerExtensions.getUserID(function success(uids) { 
      var psid = uids.psid; 

     }, function error(err) { 

     }); 
    }; 
</script> 

uid è oggetto che contiene gli ID utente
PSID Pagina con ambito ID utente

Si consiglia inoltre di chiudere la pagina calandra quando l'utente sceglie la data. Questo può essere fatto via:

<script> 
     MessengerExtensions.requestCloseBrowser(function success() { 

     }, function error(err) { 

     }); 
</script> 
+1

si deve notare che questo funziona solo su cellulare. gli utenti desktop non vedranno la pagina compatta ma una scheda esterna – user151496

Problemi correlati