DialogFlow 检测意图卡住了

DialogFlow Detect Intent stuck

我正在尝试从通过 Messenger 发送的短信中检测意图。如果我从官方 PHP DialogFlow 库 google-cloud-php-dialogflow 调用方法 detectIntent,代码会以某种方式“卡住”,我再也无法取回控制权:

<?php

$sessionsClient = new SessionsClient();

try {
    $logger->info('try');
    $formattedSession = $sessionsClient->sessionName(getenv('GCP_PROJECT_ID'), '123456');

    $textInput = new TextInput();
    $textInput->setText($message);
    $textInput->setLanguageCode('it-IT');

    $queryInput  = new QueryInput();
    $queryInput->setText($textInput);
    $dfResponse = $sessionsClient->detectIntent($formattedSession, $queryInput);
} catch (Exception $e) {
    $logger->info('catch');
    $logger->info($e->getMessage());
} finally {
    $logger->info('finally');
    $sessionsClient->close();
}

$logger->info('after');

此代码记录:

try
finally

之后再也不打印了。我究竟做错了什么?非常感谢。

启用 gRPC PHP 扩展似乎解决了问题:

FROM php:7-fpm
RUN apt-get update -q -q && apt-get install -y zlib1g-dev \
    && pecl install grpc \
    && docker-php-ext-enable grpc

我认为文档应该更清楚地说明这一点,而不是声明仅对流检测(音频)是必需的。