如何在php中处理IBM Watson异步回调事件

如何在php中处理IBM Watson异步回调事件,php,speech-to-text,ibm-watson,Php,Speech To Text,Ibm Watson,我正在尝试让异步回调为IBMWatson语音到文本工作 我得到了旋度函数 curl -X POST -u "c94c7025-09f5-4cee-94dd-8f73348b60d8":"4TOriExZooKh" \ --header "Content-Type: audio/wav" \ --data-binary @uploads/001528fe-9545-4c3f-9d0d-aec4cd61caee.wav \ "https://stream.watsonplatform.net/spe

我正在尝试让异步回调为IBMWatson语音到文本工作

我得到了旋度函数

curl -X POST -u "c94c7025-09f5-4cee-94dd-8f73348b60d8":"4TOriExZooKh" \
--header "Content-Type: audio/wav" \
--data-binary @uploads/001528fe-9545-4c3f-9d0d-aec4cd61caee.wav \
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognitions?callback_url=http://34.234.215.13/callback.php&model=en-US_NarrowbandModel&profanity_filter=false&events=recognitions.completed_with_results&user_token=audio&results_ttl=10"
据我所知,结果或通知应该作为POST发送到回调URL

上面的代码应该将完成的结果发送到callback.php


我不明白怎么了?当我一个接一个地进行同步调用时,我能够让它工作。

我相信您没有注册(白名单)您的回调,请参阅文档中的“注册回调URL”部分:

通过调用
POST/v1/register\u callback
方法注册回调URL。注册回调URL后,可以使用它接收无限数量作业的通知。注册过程包括四个步骤:


我相信您没有注册回调(白名单),请参阅文档中的“注册回调URL”部分:

通过调用
POST/v1/register\u callback
方法注册回调URL。注册回调URL后,可以使用它接收无限数量作业的通知。注册过程包括四个步骤:


我想出了如何处理POST请求。这对我来说是全新的,我不知道

callback.php
<?php
$request_body = file_get_contents('php://input');
$json = json_decode($request_body);
希望这对任何人都有帮助。

有关PHP在正文中处理POST数据的更多信息,请参见此处

我想出了如何处理POST请求。这对我来说是全新的,我不知道

callback.php
<?php
$request_body = file_get_contents('php://input');
$json = json_decode($request_body);
希望这对任何人都有帮助。

有关PHP在正文中处理POST数据的更多信息,请参见此处

我按照步骤进行了操作,并将其注册<代码>root@ip-10-0-0-149:/home/ubuntu#curl-X POST-u“用户名”:“密码”\>“https://stream.watsonplatform.net/speech-to-text/api/v1/register_callback?callback_url=http://xxx/callback.php{“url”:http://xxxx/callback.php,“状态”:“已创建”} root@ip-10-0-0-149:/home/ubuntu#但我仍然没有收到任何帖子。好的,看来你成功注册了回调端点。您是否可以发布用于创建作业的curl命令,以便通过回调通知您?您可以发布php日志吗?当然,这是curl命令<代码>curl-X POST-u“用户名”:“paswword”\--标题“内容类型:音频/wav”\--数据二进制@uploads/001528fe-9545-4c3f-9d0d-AEC4D61CAEE.wav"https://stream.watsonplatform.net/speech-to-text/api/v1/recognitions?callback_url=http://xxxx/callback.php/results&model=en-US\u窄带模型和亵渎\u过滤器=错误和事件=识别。完成\u,结果和用户\u令牌=音频和结果\u ttl=10“我查看了日志,确实向您发送了通知,并从您的服务器收到了200代码。请检查您的日志<代码>发送的通知:{“id”:“47bc8860-XXXXXXXXXX 92DD9AFA”,“用户令牌”:“音频”,“事件”:“识别.完成”}收到的状态代码:200作业完成:47bc8860-B2XXXXXXXX99E192DD9AFA我按照步骤进行了操作并注册<代码>root@ip-10-0-0-149:/home/ubuntu#curl-X POST-u“用户名”:“密码”\>“https://stream.watsonplatform.net/speech-to-text/api/v1/register_callback?callback_url=http://xxx/callback.php{“url”:http://xxxx/callback.php,“状态”:“已创建”} root@ip-10-0-0-149:/home/ubuntu#但我仍然没有收到任何帖子。好的,看来你成功注册了回调端点。您是否可以发布用于创建作业的curl命令,以便通过回调通知您?您可以发布php日志吗?当然,这是curl命令<代码>curl-X POST-u“用户名”:“paswword”\--标题“内容类型:音频/wav”\--数据二进制@uploads/001528fe-9545-4c3f-9d0d-AEC4D61CAEE.wav"https://stream.watsonplatform.net/speech-to-text/api/v1/recognitions?callback_url=http://xxxx/callback.php/results&model=en-US\u窄带模型和亵渎\u过滤器=错误和事件=识别。完成\u,结果和用户\u令牌=音频和结果\u ttl=10“我查看了日志,确实向您发送了通知,并从您的服务器收到了200代码。请检查您的日志<代码>发送的通知:{“id”:“47bc8860-XXXXXXXXXX 92DD9AFA”,“用户令牌”:“音频”,“事件”:“识别.完成”}收到的状态代码:200作业完成:47bc8860-B2XXXXXXXX99E192DD9AFA
php://input
很少需要,您的情况也不需要。使用STDIN,我会尝试一下。这有什么区别?我将影响未来的请求或多个请求?
php://input
很少需要,您的情况也不需要。使用STDIN,我会尝试一下。这有什么区别?我将影响未来的请求还是多个请求?
callback.php
<?php
$request_body = file_get_contents('php://input');
$json = json_decode($request_body);
json_encode($json->results[0])