所以,我目前正在尝试使用Angular的PHP(对PHP来说还是新手),并且想要一些建议,以便我可以编写好的干净代码。
基本上,我试图从第三方API获取分析,但首先我必须使用我的用户名+密码检索令牌,然后在收到令牌后,我必须调用另一个URL并添加该令牌参数。
首先,在我的控制器中 - 我稍后会在我的服务中添加我的$ http电话
var username = 'test';
var pass = 'test password';
$http({
url: 'http://example/stats.php',
method: "POST",
data: $.param({
"user_id": username,
"pass" : pass
}),
}).success(function(data, status, headers, config) {
console.log(data.tokenResponse.tokenId);
// Here I get back that token Id
}).error(function(data, status, headers, config) {});
在我的PHP脚本中,我传递了user_id&传递,然后调用API并回显$ data。
$username = $_POST['user_id'];
$password = $_POST['pass'];
$data =
file_get_contents('https://examplestats.com/rest/auth/json?login='.$username.'&password='.$password.'');
echo str_replace("\\","", $data);
作为回报,我明白了,
Object
tokenResponse: Object
tokenId: "96996a53-6464-42d6-9726-47be0971f323"
universe: Array[3]
__proto__: Object
__proto__: Object
现在我有了令牌,我必须得到分析。第三方声明我必须将URL中的令牌作为参数传递,即
example.com/rest/data/json?tokenId=的 96996a53-6464-42d6-9726-47be0971f323 &安培;指示器=分析
现在问题是,如何只调用stats.php一次并检索数据?目前,我可以创建另一个php文件并执行相同的过程,但后来我会重复代码。与此同时,我会试着弄明白。
答案 0 :(得分:1)
在PHP脚本中使用json_decode
获取tokenID并发出另一个请求:
$username = $_POST['user_id'];
$password = $_POST['pass'];
$data =
file_get_contents('https://examplestats.com/rest/auth/json?login='.$username.'&password='.$password.'');
$data = json_decode($data);
$analytics = file_get_contents('https://examplestats.com/rest/data/json?tokenId=' . $data->tokenResponse->tokenId . '&indicator=Analytics');
echo str_replace("\\","", $analytics);