我目前正在开发一个网站,该网站需要对社交插件网站进行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
答案 0 :(得分:3)
一旦你获得了XML字符串,我就会给SimpleXMLElement一个镜头(顺便说一下,我也会使用curl_exec()
...)
$authTokenXml = new SimpleXMLElement( $store );
$authUrl = $authTokenXml->url
现在您可以以任何您喜欢的方式使用$authUrl
,例如发送http重定向标头:
header('Location: ' . $authUrl);
或另一个CURL。
希望有所帮助!
(顺便说一句。你不需要<?php
- 每一行都有标签。实际上它启动了一个php块。
答案 1 :(得分:0)