express.jsとNode.js client library for Google Maps API Web Servicesを使用して詳細とGoogleプレイスの写真を返すAPIエンドポイントを構築しています。以下のエンドポイントは場所の詳細を返し、写真のURLを取得するのに問題があります。以下は問題のコードです。Google Place PhotoのURLをGoogleMapsClientレスポンスから取得する
- は、場所の詳細は
req.params.id
に基づいて取得し、詳細がphoto_reference
から上var googleMapsClient = require('@google/maps').createClient({ key: 'mykeyhere', Promise: Promise }); exports.getGglPlace = function(req, res) { googleMapsClient.place({ placeid: req.params.id }).asPromise() .then((response) => { var venue = response.json.result if (venue.photos[0]) { googleMapsClient.placesPhoto({ photoreference: venue.photos[0].photo_reference, maxwidth: 200 }).asPromise() .then((photo) => { console.log("Photo:", photo); // this returns a massive chunk of data which I think contains the actual image object also venue.photoURL = photo.url; // this doesn't work res.send(venue); }) .catch((err)=>{ console.log("Error Getting Photo!", err); res.send(venue); }) } else { res.send(venue); } }) .catch((err) => { res.send(404); }) }
使用して写真を入手
が含まれている:Googleマップクライアントへの2つの要求があります
photos
配列
レスポンスからURLを取得する方法上記のコードでhはphoto
と呼ばれていますか?
ブラウザまたはPostmanを通じて直接APIにアクセスすると、URLは画像の実際のソースURLにリダイレクトされます。これは、venue
オブジェクトに追加したいものです。
はにリダイレクトし(これは私がphoto.url
を返すようにしたいものです):https://lh3.googleusercontent.com/p/AF1QipPVD12HA5FBnjmiqVLphYgjfPtIPydn4Ie-xGKr=s1600-w200
すべてのヘルプは高く評価されます。
P.S.私の最初の投稿 - 申し訳ありませんが、私は私の質問で十分ではない場合。
私は同様の質問は[こちら](HTTPSが見つかりました: //stackoverflow.com/questions/39508823/how-process-response-object-from-google-places-api-placesphoto)、回答はありません – boomer4you