在Googles PHP-API-Cient的新版本中,Google_Signer_P12类已被删除,现在您应该通过Firebase JWT创建签名网址(请参阅https://github.com/google/google-api-php-client/blob/master/UPGRADING.md)。
不幸的是,这对我不起作用(我正在尝试为云存储下载生成签名的URL)。我以前的(工作)代码看起来像这样:
$signer = new \Google_Signer_P12( 'privatekey.p12' , 'notasecret' );
$stringToSign = 'GET' . "\n" . "\n" . "\n" . $expires . "\n". '/' . $bucketName . '/' . $fileName;
$signature = $signer->sign( utf8_encode( $stringToSign ) );
$finalSignature = \Google_Utils::urlSafeB64Encode( $signature );
我试图将其替换为:
$stringToSign = 'GET' . "\n" . "\n" . "\n" . $expires . "\n". '/' . $bucketName . '/' . $fileName;
$finalSignature = \JWT::encode(
$stringToSign,
'privateKey.p12'
);
但我收到“SignatureDoesNotMatch”错误。不幸的是,我在文档中找不到有关如何升级这部分代码的任何内容。