簡體   English   中英

如何從PHP中獲取遠程JSON或XML API數據並將返回對象指定為PHP變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM