0
Google Maps APIを使用して、2つのスポット間の時間と距離を計算しようとしています。私のコードはかなり単純で、それが動作します(使用codepad、それがスムーズに実行)が、私は、コードを展開し、ボットは私に間違った答えを与えるサービスを利用しようとすると...
これはコードです:
PHPを使用した電報ボット - エコーが機能しない
$details = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=Miami&destinations=Miami+Beach&mode=driving&sensor=false";
$json = file_get_contents($details);
$arr = json_decode($json, TRUE);
$distance = $arr[rows][0][elements][0][distance][text];
$time = $arr[rows][0][elements][0][duration][text];
$response = "You should be there in $time. Total distance you'll cover: $distance";
$parameters = array('chat_id' => $chatId, "text" => $response);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
これは、ボットが私の答えです:
"You should be there in {. Total distance you'll cover: {";
そして、これは実際のJSONです:
{
"destination_addresses" : [ "Miami Beach, Florida, Stati Uniti" ],
"origin_addresses" : [ "Miami, Florida, Stati Uniti" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "15,7 km",
"value" : 15745
},
"duration" : {
"text" : "22 min",
"value" : 1322
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
何が起こっているのですか?
UPDATE:file_get_contentsは文字列を返します。だから私はそれをPHP配列にデコードしましたが、今はボットも答えません!
telegambotにメッセージをどのように送信しますか? webhook answer 500 errorの場合、ボットはwebhook経由でメッセージを送信できません。また$ response = "あなたは{$ time}以内にいるはずです。あなたがカバーする総距離:{$ distance}";より良い –