我正在玩PHP中的云翻译API v3。我完成了设置过程,并尝试了这里显示的简单翻译,它起了作用。然后我想测试词汇表,所以我尝试添加一个如这里所述的词汇表。当我试图调用函数时:
protected function createGlossary()
{
$translationServiceClient = new TranslationServiceClient();
$projectId = 'my-project-id';
$glossaryId = 'my-new-glossary';
$inputUri = 'gs://bucket/file.csv';
$formattedParent = $translationServiceClient->locationName(
$projectId,
'us-central1'
);
$formattedName = $translationServiceClient->glossaryName(
$projectId,
'us-central1',
$glossaryId
);
$languageCodesElement = 'pl';
$languageCodesElement2 = 'en';
$languageCodes = [$languageCodesElement, $languageCodesElement2];
$languageCodesSet = new LanguageCodesSet();
$languageCodesSet->setLanguageCodes($languageCodes);
$gcsSource = (new GcsSource())
->setInputUri($inputUri);
$inputConfig = (new GlossaryInputConfig())
->setGcsSource($gcsSource);
$glossary = (new Glossary())
->setName($formattedName)
->setLanguageCodesSet($languageCodesSet)
->setInputConfig($inputConfig);
try {
$operationResponse = $translationServiceClient->createGlossary(
$formattedParent,
$glossary
);
$operationResponse->pollUntilComplete();
if ($operationResponse->operationSucceeded()) {
$response = $operationResponse->getResult();
printf('Created Glossary.' . PHP_EOL);
printf('Glossary name: %s' . PHP_EOL, $response->getName());
printf('Entry count: %s' . PHP_EOL, $response->getEntryCount());
printf(
'Input URI: %s' . PHP_EOL,
$response->getInputConfig()
->getGcsSource()
->getInputUri()
);
} else {
$error = $operationResponse->getError();
// handleError($error)
}
} finally {
$translationServiceClient->close();
}
}
它返回一个错误:
Failed to build request, as the provided path (google.longrunning.Operations/GetOperation) was not found in the configuration.
它在$operationResponse->pollUntilComplete();
处抛出错误。bucket中的文件只包含一行test,test
。
然后,当我尝试调用列出所有词汇表的函数时,它可以工作,但不会返回任何词汇表。
是什么原因导致了这个问题?我该如何添加词汇表?
您需要为PHP安装gRPC扩展。
信息:https://cloud.google.com/php/grpc
安装gRPC for PHP
gRPC是一个现代的、开源的、高性能的远程过程调用框架。如果要将PHP客户端库用于启用gRPC的API,则必须安装gRPC for PHP。本教程介绍如何安装和启用gRPC。
安装PHP的gRPC扩展
sudo pecl install grpc
为PHP启用gRPC扩展
在php.ini文件中的任何位置添加此行,例如/etc/php7/cli/php.ini。您可以通过运行php--ini找到此文件。
extension=grpc.so