Tôi đang cố gắng để có được dữ liệu json bằng cách gọi url moodle:Bắt JSON Object bằng cách gọi một URL với các thông số trong PHP
https://<moodledomain>/login/token.php?username=test1&password=Test1&service=moodle_mobile_app
định dạng phản ứng của hệ thống moodle là như thế này:
{"token":"a2063623aa3244a19101e28644ad3004"}
kết quả tôi đã cố gắng để xử lý với 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!";
}
Result i s: không xác định
Bây giờ câu hỏi: Làm thế nào tôi có thể xử lý phản ứng json định dạng của hệ thống moodle? Bất kỳ ý tưởng nào cũng sẽ tuyệt vời.
[UPDATE]: Tôi đã sử dụng cách tiếp cận khác thông qua curl và thay đổi trong php.ini dòng sau: * extension = php_openssl.dll *, * allow_url_include = On *, nhưng bây giờ có một lỗi: Thông báo: Đang cố gắng lấy thuộc tính không đối tượng. Đây là mã được cập nhật:
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'
Bất kỳ ai cũng có thể tư vấn cho tôi không?
cảm ơn bạn đã trả lời của bạn, tôi đã thay đổi nó để đào tạo Quản lý ** ('https: // ...') ** ... , nhưng vẫn là kết quả tương tự ** undefined ** Phiên bản PHP 5.4.7 – Dozent
của tôi sau đó lặp lại kết quả file_get_contents để xem những gì bạn nhận được. là nó thực sự json? có lẽ bạn đã có magic_quotes được kích hoạt và PHP là "helpfully" là một jerk và mangling chuỗi trên bạn. Có lẽ url đó không sinh ra json chút nào. –
Tôi đã truy cập vào liên kết này: http://docs.moodle.org/dev/Creating_a_web_service_client#How_to_get_a_user_token nó không phải là một phản hồi json? – Dozent