我已经启用了Google文本到语音api,生成了一个oAuth2文件和一个api密钥,当我从本地主机运行下面的代码时,执行会碰到"$textToSpeechClient ="行,两者都返回相同的错误("无法加载默认凭据")。我更喜欢使用api键(在注释掉的部分),但我将使用任何一个。我使用Composer安装PHP客户端。
我试着从谷歌获得付费支持,但我无法注册,因为"你必须被分配支持"。支持帐户管理员在IAM中继续为组织提供服务。当我去那里时,没有明显的方法可以做到这一点。
在这些方面的帮助将是非常感激的。
require __DIR__ . '/vendor/autoload.php';
$client = new GoogleClient();
$client->setAuthConfig(__DIR__ . 'googleAuthorization.json');
use GoogleCloudTextToSpeechV1AudioConfig;
use GoogleCloudTextToSpeechV1AudioEncoding;
use GoogleCloudTextToSpeechV1SynthesisInput;
use GoogleCloudTextToSpeechV1TextToSpeechClient;
use GoogleCloudTextToSpeechV1VoiceSelectionParams;
// $client->setDeveloperKey("AIzaSyAzSZjgfLS76q1234abcdefgtoGuKAqz5xE");
// $client->addScope(GoogleServiceDrive::DRIVE);
// $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
// $client->setRedirectUri($redirect_uri);
// if (isset($_GET['code'])) {
// $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
// }
$textToSpeechClient = new TextToSpeechClient();
问题解决了(在至少3个不同时区的3名google支持人员的视频聊天帮助下)。
Google文本转语音api要求PHP命令:
putdev()
是可用的,所以你可以运行:
putenv(
"GOOGLE_APPLICATION_CREDENTIALS=absolute-path-to-your-json-authentication-file.json"
);
在我的默认php.ini服务器配置中,putdev包含在相当长的disable_functions=列表中。从列表中删除putdev允许身份验证按预期进行。
为什么文本转语音api需要这个,而不是云存储api仍然是一个谜。