私はmoodle urlを呼び出してjsonデータを取得しようとしています:
https://<moodledomain>/login/token.php?username=test1&password=Test1&service=moodle_mobile_app
ムードルシステムの応答形式は次のようになります。
{"token":"a2063623aa3244a19101e28644ad3004"}
PHPで処理しようとした結果:
if ( isset($_POST['username']) && isset($_POST['password']) ){
// test1 Test1
// request for a 'token' via moodle url
$json_url = "https://<moodledomain>/login/token.php?username=".$_POST['username']."&password=".$_POST['password']."&service=moodle_mobile_app";
$obj = json_decode($json_url);
print $obj->{'token'}; // should print the value of 'token'
} else {
echo "Username or Password was wrong, please try again!";
}
結果:未定義
ここで質問です: moodle システム の json 応答形式をどのように処理できますか? どんなアイデアでも素晴らしいでしょう。
[更新]: curlを 介して別のアプローチを使用し、 php.iniで次の行を変更しました: *extension=php_openssl.dll*, *allow_url_include = On*, しかし、エラーが発生しました: Notice: Trying to get property of non-物体。更新されたコードは次のとおりです。
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$moodle = "https://<moodledomain>/moodle/login/token.php?username=".$_POST['username']."&password=".$_POST['password']."&service=moodle_mobile_app";
$result = curl($moodle);
echo $result->{"token"}; // print the value of 'token'
誰でも私にアドバイスできますか?