Search code examples
phptwilioibm-watsontwilio-php

Twilio: Accessing IBM Watson Speech-to-text results payload


New Twilio developer here. My app uses the IBM Watson Speech-to-text Add-on, but I'm having trouble accessing the results payload in my callback. I can't find helpful documentation or any discussion of the issue in forums.

What I know/What I've tried

  • The payload resource exists – I'm able to access it directly via browser.
  • Using the syntax prescribed by the Twilio PHP helper library client returns a 61005 "Bad request" error:

        $request = $client->v1->lookups
                   ->phoneNumbers("+1XXXXXXXXXX")
                   ->fetch(
                           array(
                                 "AddOns" => "ibm_watson_speechtotext",
                           ));
    
  • Using cURL to get the resource directly has been equally unfruitful, returning an empty string.

        $request = json_decode($_REQUEST['AddOns']);
        error_log("URL: ".$request->results->ibm_watson_speechtotext->payload[0]->url);
        $ch = curl_init($request->results->ibm_watson_speechtotext->payload[0]->url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_USERPWD, "$account_sid:$token");
        $json = curl_exec($ch);
        if($json === false) {
            error_log("cURL error: ".curl_error($ch));
            error_log(print_r($json,true));
        }
        curl_close($ch);
        $obj = json_decode($json);
    

Any recommendations?


Solution

  • The following resources should help you find the results you're looking for.

    Your first code snippet above doesn't apply (Lookup is a different product). instead you will want to use the add-on results api to grab the results. https://www.twilio.com/docs/api/add-ons/results-api

    For your second snippet, you will need to enable follow redirect option with CURL.

    Clients will need to follow the redirect to receive the data associated with a Payload resource.

    These may also help as you explore add-ons:

    https://www.twilio.com/docs/api/add-ons/using-add-ons#add-on-results-available-callback and https://www.twilio.com/docs/guides/voice/how-to-use-recordings-add-ons-in-python