![](/img/trans.png)
[英]php, return a specific object value from json and assign it to variable
[英]How to GET remote JSON or XML API data from within PHP and assign a return object as PHP variable?
我在做什么:
我正在用PHP編寫一個自定義程序,它通過API從在線LMS服務中提取數據。 現在,我正在嘗試實現可用的單點登錄功能。
當單擊一個按鈕時(通過js或php POST或?),程序的這一部分需要對API執行GET請求,並最終將用戶瀏覽器重定向到API的響應中提供的URL。
API允許選擇XML或JSON響應,我更願意使用JSON,但如果需要,將使用XML。
從提出請求的API文檔:
本文檔中列出的所有請求都應在請求標頭中包含內容類型(XML或JSON),並以以下基礎Uri作為前綴: https : //api.example.com/v1.svc
例如,以XML格式獲取用戶列表的Uri將是:
內容類型:text / xml
獲取https://api.example.com/v1.svc/users?apikey=MY-KEY&source=MY-APP
以下是我正在嘗試實現的內容:
如何獲取用戶的LoginKey
獲得要登錄的用戶ID后,您需要向/ users / {user-id}發出GET請求,該請求將返回有關該用戶的信息。 其中包含一個LoginKey,您可以使用它將用戶的瀏覽器重定向到。
例如。
獲取https://api.example.com/v1.svc/users/USER-ID?apikey=YOUR_API_KEY&source=sampleapp
來自API的回復:
<User> <Id>abc12345678</Id> <UserName>rich_demo@example.com</UserName> <FirstName>Rich</FirstName> <LastName>Chetwynd</LastName> ..... <LoginKey>https://demo.example.com/login.aspx?loginkey=xxxzzzyyy777222</LoginKey> </User>
<LoginKey>
對象數據是我最終需要將用戶的瀏覽器重定向到的URL。
我是新手使用API並嘗試了大量的方法,在發布之前我無法工作。 如果您知道如何實現這一點,我將非常感激您分享您的知識。
謝謝。
從HTML <form>
,使用傳統的帖子(不是AJAX)到執行此操作的PHP腳本:
if(isset($_POST['userid']))
{
$userId = (int)$_POST['userid'];
$obj = simplexml_load_file('https://api.xxx.com/v1.svc/users/' . $userId . '?apikey=YOUR_API_KEY&source=sampleapp');
if($obj && isset($obj->LoginKey))
{
$loginKey = $obj->LoginKey;
header('Location: ' . $loginKey);
}
else
{
// failed to load the xml
}
}
如果您想使用JSON,可以使用file_get_contents()
從URL獲取原始JSON,然后使用json_decode()
將其轉換為對象。
此外,如果你想通過AJAX進行,你將不得不用PHP回顯URL而不是嘗試重定向,然后讓Javascript使用window.location.href = '...'
重定向window.location.href = '...'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.