FB-bot js, gupshup

szavazat
0

Keresem a megoldást probléma aszinkron hívási funkciók, különösen context.simplehttp.makePost(url, param, header);a következőtől gupshup api. Azt kell, hogy küldjön több üzenetet konkrét sorrendben.

Itt a kód:

function MessageHandler(context, event) {
if (event.messageobj.type == msg) {
if (Array_CH(hi_array, message)) {
var contextParam = JSON.stringify(event.contextobj);
var url = https://api.gupshup.io/sm/api/bot/ + event.botname + /msg;
var param = context= + contextParam + &message=;
var header = { apikey: b3843dad0a484ad3ca19b5358be6c809, Content-Type: application/x-www-form-urlencoded };
var catalogue;
var button;
var param1;
param = context= + contextParam + &message=Hey.\nContest called The vivid Emotions needs your assessment.\nLook what emotions here. Do you agree?\nOr are your feelings totally different?;
context.simplehttp.makePost(url, param, header);
catalogue = {
            type: catalogue,
            msgid: cat_212,
            items: [
                {
                    title: Design1,
                    subtitle: Quisque consectetur ornare malesuada.\n Nunc dapibus nec felis.,
                    imgurl: http://sv777.ru/images/stati/239465865852987356diz.jpg,
                    options: [
                        {
                            type: url,
                            title: About,
                            url: http://laminat-parket.net/product/room-yasen-dizajn
                        }
                    ]
                },
                {
                    title: Design2,
                    subtitle: Donec purus sem, mollis a fermentum sit amet, pretium sed lectus.\n Ut at mattis purus.,
                    imgurl: http://laminat-parket.net/upload/productions/55794d8198b65.jpg,
                    options: [
                        {
                            type: url,
                            title: About,
                            url: http://laminat-parket.net/product/room-yasen-dizajn
                        }
                    ]
                },
                {
                    title: Design3,
                    subtitle: Proin nec turpis leo.\n Nam metus augue, aliquam vitae laoreet sed, dignissim a risus.,
                    imgurl: http://www.askwallpapers.com/pic/201502/2880x1800/askwallpapers.com-17168.jpg,
                    options: [
                        {
                            type: url,
                            title: About,
                            url: http://laminat-parket.net/product/room-yasen-dizajn
                        }
                    ]
                },
                {
                    title: Design4,
                    subtitle: Phasellus vitae justo sed velit faucibus hendrerit.\n Aenean scelerisque eros ac tortor tincidunt feugiat.,
                    imgurl: http://www.kidsworldstudio.net/wp-content/uploads/2015/11/bunk-bed-plans-for-kids-bedroom-ideas-home-interior-design-3353-loft-bed-for-kids-loft-bed-for-kids1.jpg,
                    options: [
                        {
                            type: url,
                            title: About,
                            url: http://laminat-parket.net/product/room-yasen-dizajn
                        }
                    ]
                },
                {
                    title: Design5,
                    subtitle: Pellentesque risus nibh, porttitor vitae diam ut, facilisis aliquet velit.\n Quisque scelerisque massa urna. ,
                    imgurl: http://www.wallpaper4k.com/download.php?res=interior%2FWP67USXQ.jpg,
                    options: [
                        {
                            type: url,
                            title: About,
                            url: http://laminat-parket.net/product/room-yasen-dizajn
                        }
                    ]
                }
            ]
        };
button = {
            msgid: bt_2,
            type: survey,
            question: Put your Like and change this rating!,
            options: [
                {
                    type: url,
                    title: Yes,
                    url: http://www.wallpaper4k.com/uk/wallpapers/interior%20design/wp67usxq.html,
                    webview_height_ratio: full
                },
                {
                    type: url,
                    title: Add your own project,
                    url: http://www.wallpaper4k.com/uk/wallpapers/interior%20design/wp67usxq.html,
                    webview_height_ratio: full
                },
                {
                    type: text,
                    title: Need own bot?,
                }
            ]
        };
param = context= + contextParam + &message= + JSON.stringify(catalogue);
param1 = context= + contextParam + &message= + JSON.stringify(button);
context.simplehttp.makePost(url, param, header);
context.simplehttp.makePost(url, param1, header);
return;
  }
 }
}

De az üzenetek minden alkalommal küld véletlenszerű sorrendben.

A kérdést 17/11/2016 18:52
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Hogy küldjön több üzenetet egy konkrét szekvencia meg kell hagyni egy HTTP hívást befejezni kivégzése előtt a második hívást. Kétféle módon lehet kezelni az aszinkron viselkedését, miközben a HTTP hívást a Gupshup IDE -

  1. Használja az alapértelmezett HttpResponseHandler. Ez kezelőt hívja minden alkalommal a végrehajtás a HTTP hívást befejezi.

  2. Határozza meg saját visszahívási függvény, miközben a HTTP hívást. Like - context.simplehttp.makePost (url, formParams, fejlécek, funkció)

Azt javasoljuk a 2. megoldás, mivel megkönnyíti kezelni több HTTP hívásokat.

A pszeudo-kód küldéséhez 3 üzenet egy sorrendet a # 2 lenne -

function MessageHandler(context, event) {
  context.simplehttp.makePost(url, formParams, headers, secondMsg); 
//sending 1st message
}
function secondMsg(event,context){
    context.simplehttp.makePost(url, formParams, headers, thirdMsg); //sending 2nd message
}
function thirdMsg(event,context){
    context.sendResponse("I am the last message");
}

Megjegyzés - a context.sendResponse küldi az üzenetet, és kilép a kódfuttatást, amíg a következő üzenet érkezik a bot.

További részletekért tekintse meg a dokumentumot az gupshup.io

Válaszolt 06/12/2016 06:43
a forrás felhasználó

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