Facebook Messenger Extension错误:2071010

时间:2017-08-26 12:51:29

标签: node.js facebook-graph-api heroku facebook-javascript-sdk facebook-chatbot

我正在使用部署在heroku上的nodejs为messenger平台开发一个聊天机器人。 我试图在webview中获取用户ID。 我已经将messenger扩展字段设置为true,将我的域列入白名单,使用最新的更新版本的Android应用程序,并且从现在webview支持Web浏览器,我也在safari浏览器中查看它。

信使sdk正在装载完美。我检查浏览器是否支持我得到的结果 - > true。 我仍然面临着获取用户ID的问题。 我的代码是:

<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>

注意:我已经搜索了此问题的解决方案,但没有一个工作,因此我发布了此错误。

1 个答案:

答案 0 :(得分:1)

好吧,我再次阅读了文档。 文档说桌面的webview工作,但目前不支持一些注意事项,如getUserIds()。

我找到了两个替代解决方案来解决获得“psid”的问题,第一个很简单,你可能会知道它,因为很多像“2k17 Resolutions”这样的聊天机器人正在使用它。

1.将nodejs app中的“senderid”作为参数添加到webview的url中,然后在页面本身上获取它。 “senderid”和“psid”是相同的。

  1. 通过从messenger js sdk调用来获取getContext()中的psid。 getContext()在json中返回4个字段 对象,它是“thread_type”,“tid”,“psid”,“signed_request”,其中psid是我正在寻找的。 以下是完整的工作代码。

    discoverServices
  2. 以下是Thread上下文文档的链接:https://developers.facebook.com/docs/messenger-platform/webview/context

    编辑:两天前,信使几乎没有新的更新,其中一个新的更新使网页视图与所有浏览器兼容,因此现在getContext()正在使用任何浏览器。