1. ホーム
  2. php

[解決済み] URLからJSONオブジェクトを取得する

2022-03-02 01:20:38

質問

以下のようなJSONオブジェクトを返すURLがあります。

{
    "expires_in":5180976,
    "access_token":"AQXzQgKTpTSjs-qiBh30aMgm3_Kb53oIf-VA733BpAogVE5jpz3jujU65WJ1XXSvVm1xr2LslGLLCWTNV5Kd_8J1YUx26axkt1E-vsOdvUAgMFH1VJwtclAXdaxRxk5UtmCWeISB6rx6NtvDt7yohnaarpBJjHWMsWYtpNn6nD87n0syud0"
} 

URLからJSONオブジェクトを取得して access_token の値を指定します。

では、PHPで取得するにはどうすればよいのでしょうか?

どのように解決するのですか?

$json = file_get_contents('url_here');
$obj = json_decode($json);
echo $obj->access_token;

これを動作させるためには file_get_contents が必要です。 allow_url_fopen が有効になります。これは、実行時にインクルードすることで可能です。

ini_set("allow_url_fopen", 1);

を使用することもできます。 curl を使用してURLを取得します。curlを使うには、見つかった例を使ってください。 ここで :

$ch = curl_init();
// IMPORTANT: the below line is a security risk, read https://paragonie.com/blog/2017/10/certainty-automated-cacert-pem-management-for-php-software
// in most cases, you should set it to true
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'url_here');
$result = curl_exec($ch);
curl_close($ch);

$obj = json_decode($result);
echo $obj->access_token;