-1

我目前正在开发一个网站,该网站需要对社交插件网站进行 API 调用以获取用户令牌。使用用户令牌,我可以调用网站的登录窗口并让用户使用他/她的登录凭据登录,以允许我的应用程序获取所需的数据。

当 1) 我对网站进行 API 调用时,2) 它返回带有 XML 格式的用户令牌的 URL,如下所示:

1)

<a href="<?php echo "http://xxxxx.net/api/get_auth_url.xml?akey=$myAppKey" ?>" target="_blank">Login</a>

2)

<?xml version="1.0" encoding="UTF-8"?>
-<auth_token> <url>http://xxxxx.net/api/start_auth?token=7x1x81xfxxxxx5bxxxx3dx45trsda</url> <token>7x1x81xfxxxxx5bxxxx3dx45trsda</token> </auth_token>

但是,我对 PHP 比较陌生,不确定处理返回的 XML 并将网站重定向到“http://xxxxx.net/api/start_auth?token=7x1x81xfxxxxx5bxxxx3dx45trsda”的正确方法是什么。重定向后,我可以让用户登录并获取我需要的信息。

我曾尝试使用 curl 方法,如下所示,但我不熟悉解析 curl_exe() 的结果并使用解析后的值重定向站点。我还不能让它工作,但我认为应该有更多的 php 原生方式来处理返回的 XML 并使用序列化的 XML 对象来重定向网站。

<?php $ch = curl_init(); ?>
<?php curl_setopt($ch, CURLOPT_URL, "http://xxxxx.net/api/get_auth_url.xml?akey=$myAppKey"); ?>
<?php curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); ?>
<?php $store = curl_exec($ch); ?>
<?php curl_close($ch); ?>

任何反馈将不胜感激。WL

4

2 回答 2

3

一旦你得到你的 XML 字符串,我会给SimpleXMLElementcurl_exec()一个镜头(顺便说一下,我也会使用它)......

$authTokenXml = new SimpleXMLElement( $store );
$authUrl = $authTokenXml->url

现在您可以$authUrl以任何您喜欢的方式使用,例如发送一个 http 重定向标头:

header('Location: ' . $authUrl);

或使用另一个 CURL。

希望有帮助!

(顺便说一句。你不需要<?php每行中的 -Tags。它实际上启动了一个 php 块)

于 2012-05-20T22:00:39.130 回答
0

SimpleXML 文档开始

于 2012-05-20T22:00:11.867 回答