Facebook Messenger Επέκταση Σφάλμα: 2071010

ψήφοι
1

Είμαι ανάπτυξη ενός chatbot για την πλατφόρμα αγγελιοφόρος χρήση nodejs αναπτυχθεί σε Heroku. Είμαι προσπαθεί να πάρει την ταυτότητα του χρήστη στην προβολή ιστού. Έχω στο πεδίο επέκταση messenger για να είναι αληθινό, στη λίστα επιτρεπόμενων τομέα μου, χρησιμοποιώντας την πιο πρόσφατη ενημερωμένη έκδοση Android app, αλλά και επειδή τώρα webview υποστήριξη της web browser, έχω επίσης την προβολή στον browser Safari.

Το SDK αγγελιοφόρος φορτώνει τέλεια. Εγώ, ο έλεγχος αν το πρόγραμμα περιήγησης υποστηρίζεται ή όχι οποίο έχω ως αποτέλεσμα-> true. Ακόμα είμαι αντιμετωπίζει πρόβλημα να πάρει την ταυτότητα του χρήστη. κωδικός μου είναι:

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

        window.extAsyncInit = function () {
            var isSupported = MessengerExtensions.isInExtension(); 
            alert(isSupported);
            // the Messenger Extensions JS SDK is done loading
            MessengerExtensions.getUserID(function success(uids) {
                var psid = uids.psid;
                alert(psid);
            }, function error(err) {
                alert(Messenger Extension Error:  + err);
            });
        };
    </script>

ΣΗΜΕΙΩΣΗ: Έχω ψάξει τη λύση για το πρόβλημα αυτό, αλλά κανένας από αυτούς δεν λειτουργούν, ως εκ τούτου, είμαι δημοσιεύσετε αυτό το σφάλμα.

Δημοσιεύθηκε 26/08/2017 στις 12:51
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Λοιπόν, διαβάστε την τεκμηρίωση για μια ακόμη φορά. Η τεκμηρίωση λένε ότι η προβολή ιστού για τα έργα επιφάνειας εργασίας, αλλά προς το παρόν δεν υποστηρίζει ορισμένες επιφυλάξεις, όπως getUserIds ().

Βρήκα δύο αναπληρωματικών λύση σε πάνω από έρθει το πρόβλημα του να πάρει το «psid», η πρώτη είναι απλή και ίσως να το γνωρίζουν, όπως πολλοί chatbots όπως «2k17 Αποφάσεις» το χρησιμοποιείτε.

1.Adding τα «senderid» σε nodejs εφαρμογή σας ως παράμετρος στο url του webview σας και, στη συνέχεια, την μεταφόρτωση του στην ίδια τη σελίδα. Οι «senderid» και «psid» είναι ίδια.

  1. Να πάρει το psid από την getContext () καλώντας το από αγγελιοφόρο js SDK. Το πεδίο getContext () επιστροφή 4 στο αντικείμενο JSON, τα οποία είναι «thread_type», «τρεις φορές την ημέρα», «psid», «signed_request», όπου psid είναι αυτό που έψαχνα. Παρακάτω είναι η πλήρης κώδικα εργασίας.

    <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 = "https://connect.facebook.com/en_US/messenger.Extensions.js";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'Messenger'));
        window.extAsyncInit = function () {
            var isSupported = MessengerExtensions.isInExtension(); 
            alert(isSupported);
            // the Messenger Extensions JS SDK is done loading
            MessengerExtensions.getContext('YOU_APP_ID', 
              function success(result){
                alert("Success: "+result.psid);
              },
              function error(result){
                alert(JSON.stringify(result));
              }
            );
        };
    </script>
    

Και εδώ είναι το link για την τεκμηρίωση πλαίσιο Θέμα: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Δύο μέρες πίσω ο αγγελιοφόρος πήρε μερικές νέες ενημερώσεις από τα οποία, ένα από τα νέα ενημερωμένη έκδοση κάνει την προβολή ιστοσελίδων συμβατό με όλα τα browser και επομένως την getContext () συνεργάζεται με οποιοδήποτε πρόγραμμα περιήγησης.

Απαντήθηκε 26/08/2017 στις 14:19
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more