0

チャットボットを開発しようとしています。

機能性に疑問があります。

コードの一部を次に示します。

<?php
require_once 'bootstrap.php';
require_once CB_HOME.'/library/CommonFunctions.php';

class testBot extends AbstractCbRest{
  public function subscriptionCreated($userName){
    return "Welcome ";
  } 
  public function subscriptionDeleted($userName){
    return "Thanks  ";
  }
  public function messageReceived($from, $message){
    return "" ; // how to return multiple  here
  }

messageReceived 関数では、チャットボット機能を実装します。

ユーザーからメッセージを受け取るたびに、何かを返します。そのためには、いくつかの php スクリプトを実行し、いくつかの API 呼び出しを行う必要があります。最終結果をユーザーに送信します。

これには約 20 ~ 25 秒かかります。

複数の return ステートメントを送信する方法はありますか? API呼び出しが行われている間、ユーザーにメッセージを送信してから、実際の結果が来るのを待ってから送信できますか? メッセージを送信するとすぐに、ユーザーが何か返信しない限り、何かを返すことができないため、方法が思いつきません。

4

3 に答える 3

4

配列を使用します:

public function messageReceived($from, $message){
    return array(
        'Welcome',
        'Thanks',
        'Hello',
        'Whatever'
    );
}

または連想配列

array(
    'msg1' => 'Welcome',
    'msg2' => 'Thanks',
    'msg3' => 'Hello',
    'msg4' => 'Whathever'
)

次に、特定のメッセージを次のように使用できます。

array['msg1']
于 2012-05-29T13:01:17.487 に答える
1

配列を作成して返すことができます:

public function messageReceived($from, $message){
  $retval = array();
  $retval[] = "message1";
  $retval[] = "message2";
  return $retval;
}

また

public function messageReceived($from, $message){
  return array("message1","message2");
}
于 2012-05-29T13:00:59.690 に答える
0

ページ レンダリングの処理中に同期呼び出しを行うのではなく、AJAX の使用を検討する必要があるようです。

于 2012-05-29T13:00:11.917 に答える