如何将在HttpResponse调用中作为blob接收的文件转换为Salesforce Apex编码中的音频文件?

时间:2017-04-12 22:02:42

标签: salesforce text-to-speech apex watson

我实际上是尝试通过点击第三方API来实现Salesforce中的文本到语音转换。当我通过Postman发送请求时,我以.wav格式返回正确的响应。但是,我无法在salesforce端以编程方式处理此响应,因为我无法将响应存储在任何音频对象中。

非常感谢任何协助。

提前致谢。 阿布舍克巴克。

2 个答案:

答案 0 :(得分:1)

不是100%确定你想要做什么,但假设你正确地构建你的对象,它会看起来像这样

create trigger [dbo].[transaction2]
on transactionmaster
for insert
as
    declare @transtype nvarchar(10);

    select @transtype = [TXNTYPE] 
    from inserted

    if (select txnamt from inserted) > 75000
    begin
        insert into [dbo].[hightransactionmaster3]
            select 
                dot, txntype, chqnum, chqdate, txnamt, 
                acid, brid, userid 
            from 
                inserted
    end
    else
    begin
        insert into [dbo].[TRANSACTIONMASTER] 
            select 
                 dot, txntype, chqnum, chqdate, txnamt, 
                 acid, brid, userid 
             from 
                 inserted
    end

答案 1 :(得分:0)

IBM的Watson Salesforce SDK支持此功能,here

可以找到Watson的文本到语音转换服务的功能测试here参考方法

  

testSynthesize(String username,String password,String customizationId)

作为响应的一部分返回的音频文件可以保存为Salesforce中的附件,只需在 IBMWatsonFile 中创建,就像在此示例中一样,

IBMWatsonFile resp = textToSpeech.synthesize(options);
Attachment attachment = new Attachment();
attachment.Body = resp.body();
attachment.Name = resp.name();
attachment.ParentId = '<your salesforce parent id>';
insert attachment; 

此代码基本上使用HttpResponse类提供的 getBodyAsBlob()方法

在使用此方法之前,请考虑Salesforce对任何APEX标注强制执行的州长限制,请参阅记录为here标注请求或响应的最大大小