所以我的网站向我网站上的PHP页面发出了一个AJAX请求。它首先登录并获取用户的Pastebin会话ID,然后使用它来查看该用户所做的所有粘贴。唯一的问题是我一直收到错误:API请求错误,api_user_key无效或过期。我认为我的会话ID部分是正确的(我甚至尝试使用http://pastebin.com/api/api_login.php生成一个
Javascript代码:
var logindata = {};
var sessionid;
$("#login").click(function() {
$.each($('#loginform').serializeArray(), function(i, field) {
logindata[field.name] = field.value;
});
$.get("pb_login.php?username=" + logindata['pastebinusername'] + "&password=" + logindata['pastebinpassword'], function(data, status) {
alert(data);
sessionid = data;
$.get("pb_getlists.php?sessionid=" + sessionid, function(data, status) {
alert(sessionid);
alert(data);
});
});
});
pb_login.php
<?php
$api_dev_key = 'API key here';
$api_user_name = urlencode($_GET['username']);
$api_user_password = urlencode($_GET['password']);
$url = 'https://pastebin.com/api/api_login.php';
$ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_dev_key='.$api_dev_key.'&api_user_name='.$api_user_name.'&api_user_password='.$api_user_password.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
$response = curl_exec($ch);
echo $response;
?>
pb_getlists.php
<?php
$api_dev_key = 'API key here';
$api_user_key = $_GET['sessionid'];
//$api_user_key = '43ded5a66e8ed08603804fe2487c8ab7';
$api_results_limit = '250';
$url = 'https://pastebin.com/api/api_post.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=list&api_user_key='.$api_user_key.'&api_dev_key='.$api_dev_key.'&api_results_limit='.$api_results_limit.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0);
$response = curl_exec($ch);
echo $response;
?>
提前致谢。 :)
编辑:我真的开始认为它是Pastebin API的一个问题。如果我搞砸了一些愚蠢的东西,我不会感到惊讶,但我不知道它可能是什么。
答案 0 :(得分:1)
耶。我是个白痴。
我将错误的IP列入白名单(您需要将IP列入白名单以使用Pastebin API)。我正在使用LAMP VM进行测试,当我开始在我的实际网站上进行操作时忘了更改它。