2016-11-28 7 views
0

オープン天気APIの使い方を理解する上で問題があります。 どのように私はなどcertains市の気温、湿度を得るか、私はPHP OpenWeather

<?php 
    $request = file_get_contents('http://api.openweathermap.org/data/2.5/forecast/city?id=myidblablabla'); //example ID 

    $jsonPHP = json_decode($request); 

    echo $jsonPHP->city; 

?> 

としてそれを使用して試してみました。しかし、私は

Catchable fatal error: Object of class stdClass could not be converted to string in

今、私が聞いている1つのより多くの質問があると言ってエラーが出ますか?私が受け取ったコードから私はモスクワだけを取得します

+0

文書は貴重ではありませんでしたか? –

+0

天気予報はオープンソースライセンスで今リリースされていますか?それは素晴らしいニュースです! – arkascha

+0

ちょっと、100%正確な答えを見つけることができませんでした。私はそれを調べようとしましたが、私が持っていたすべての試みは失敗でした。 –

答えて

1

簡略化するために、代わりにjsonを配列に変換することもできます。

$jsonPHP = json_decode($request,true); 

ここで簡単に説明します。 は私が前に、このAPIを使ったことがないことも、ドキュメント(http://openweathermap.org/current)によると、

注意。私はただここで助けようとしています。

あなたはapi.openweathermap.org/data/2.5/weather?lat=35&lon=139

をヒットした場合それは

{"coord":{"lon":139,"lat":35}, 
"sys":{"country":"JP","sunrise":1369769524,"sunset":1369821049}, 
"weather":[{"id":804,"main":"clouds","description":"overcast clouds","icon":"04n"}], 
"main":{"temp":289.5,"humidity":89,"pressure":1013,"temp_min":287.04,"temp_max":292.04}, 
"wind":{"speed":7.31,"deg":187.002}, 
"rain":{"3h":0}, 
"clouds":{"all":92}, 
"dt":1369824698, 
"id":1851632, 
"name":"Shuzenji", 
"cod":200} 

今、あなたは天気湿度をしたいと仮定すると、それだけのように応答します。

天気:

echo $jsonPHP["weather"][0]["id"]; 

湿度:あなたはhttp://api.openweathermap.org/data/2.5/weather?lat=35&lon=139をヒットし、ケースのために

{"cod":401, "message": "Invalid API key. Please see http://openweathermap.org/faq#error401 for more info."} 

として応答を取得する場合

echo $jsonPHP["main"]["humidity"]; 

も注意している、彼らはここで説明してきました:

http://openweathermap.org/faq#error401をこれは:

Q: API calls return an error 401

A: Starting from 9 October 2015 our API requires a valid APPID for access. Note that this does not mean that our API is subscription-only now - please take a minute to register a free account to receive a key.

We are sorry for inconvenience but this is a necessary measure that will help us deliver our services to you faster and more reliably.

For FOSS developers: we welcome free and open source software and are willing to help you. If you want to use OWM data in your free software application please register an API key and file a ticket describing your application and API key registered. OWM will review your request lift access limits for your key if used in open source application.

+0

はい、私は$ jsonPHP ["weather"] [0] ["id"]を使用します。私は未定義のインデックスを取得する:天候 –

+1

私は* APPID *を持っていないので、私はhttp://api.openweathermap.org/data/2.5/weather?lat=35&lon=139にアクセスすることができないことを忘れているので、応答は* json *ファイルとして保存され、正しい出力が得られます。私は '804'を手に入れました。これは正解です! –

+0

ええ、これは実際にvar_dumpから得られるものです。http://pastebin.com/KteUqtqc [list] [0] ['weather']にアクセスしようとしましたが、文字列 –