J'utilise PHP pour publier des images panoramiques. Je suis 3 étapes dans Google Document et a reçu avec succès PhotoID après métadonnées téléchargées, mais quand j'utilise ces photoID pour une autre demande, il renvoie "La référence de téléchargement ne peut pas être trouvée.Veuillez vous assurer que vous avez téléchargé un fichier à l'URL de référence de téléchargement. Si cette erreur persiste, demandez une nouvelle URL de téléchargement et réessayez ".Street View Publish API PHP - La référence de téléchargement ne peut pas être trouvée après le téléchargement des métadonnées
Voici mon code:
Get Ajouter URL
$cur_upload_url = curl_init();
curl_setopt_array($cur_upload_url, array(
CURLOPT_URL => "https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=$api_key",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "" ,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $access_token",
"content-type: application/json",
"Content-Length: 0"
),
));
$response = curl_exec($cur_upload_url);
echo $response;
$re = '/https?:\/\/[^"]*/';
$str = $response;
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0);
$upload_url = $_SESSION['UploadRef'] = $matches[0][0];
Réponse:
{
"uploadUrl":"https://streetviewpublish.googleapis.com/media/user/104039888676357869012/photo/2857577503984652262"
}
Ajouter photo pour Upload URL:
$cmd = exec("curl --request POST \
--url '$upload_url' \
--upload-file '$imagePath' \
--header 'Authorization: Bearer $access_token'"
, $outputAndErrors, $return_value);
Il ne retourne rien.
Téléchargez les métadonnées
$curl_meta = curl_init();
curl_setopt_array($curl_meta, array(
CURLOPT_URL => "https://streetviewpublish.googleapis.com/v1/photo?key=$api_key",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => '{
"uploadReference":
{
"uploadUrl": "'.$upload_url.'"
},
"pose":
{
"heading": 95.0,
"latLngPair":
{
"latitude": '.$latVal.',
"longitude": '.$langVal.'
}
},
"captureTime":
{
"seconds": '.$time_stamp.'
},
}',
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $access_token",
"content-type: application/json"
),
));
$response_meta = curl_exec($curl_meta);
Réponse
{
"photoId":{
"id":"CAoSLEFGMVFpcE4wTDEycFl6S2xVOWtUWmlRVHZCSm90bHp6QUpRWVZ5QlNoWnF4"
}
}
Et quand je suis en train de mettre à jour la connexion ou exécuter API photo.create:
$curl_meta = curl_init();
curl_setopt_array($curl_meta, array(
CURLOPT_URL => "https://streetviewpublish.googleapis.com/v1/photo?key=$api_key",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => '{
"photoId": {
"id": "'.$photoID.'"
},
"uploadReference": {
"uploadUrl": "'.$upload_url.'"
},
"captureTime": "'.(new DateTime())->format('Y-m-d\TH:i:s\Z').'",
"connections": [],
"places": [],
"pose": {
"heading": 0
}
}',
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $access_token",
"content-type: application/json"
),
));
$response_meta = curl_exec($curl_meta);
Il réponse
{
"error":{
"code":404,
"message":"The upload reference cannot be found. Please make sure you have uploaded a file to the upload reference URL. If this error persists, request a new upload URL and try again.",
"status":"NOT_FOUND"
}
}
Obtenez la photo avec le retour PHOTOID
exec('curl --request GET \
--url "'. addslashes('https://streetviewpublish.googleapis.com/v1/photo/'.$photoID.'?key='.$api_key) .'" \
--header "Authorization: Bearer '. addslashes($access_token) .'" ',
$outputAndErrors, $return_value);
Réponse
"error":{
"code":404,
"message":"Image not found for id: CAoSLEFGMVFpcE9faE52aG95TTYtaENjd1NRX3BCU2l4czcwVnVXQS1jd3dxMGxO",
"status":"NOT_FOUND"
}
Je suis coincé et besoin de trouver une solution.
Merci beaucoup!