我使用下面的代码来获取用户数据但不知道为什么当我在另一台服务器上使用相同的代码并且其工作正常时它会说无效令牌错误。我检查了CURL在我的系统中启用了。您可以在http://specificpromotions.com/test/test.php上看到以下代码的工作示例。可能有什么问题请帮帮我。非常感谢您的帮助。感谢
$ch = curl_init();
//you will need to change the 'eric' to what the user is searching for in the manual entry section
$data = array('qFunc' => 'searchActiveStaff', 'qArgs' => 'eric');
curl_setopt($ch,CURLOPT_URL,'http://api.yfcimpact.com/yfc_dev.php/api/usa/person?' . http_build_query($data) );
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_USERPWD, "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJob3N0IjoiMTIwLjU5LjE1OS4yMzIiLCJ1c2VybmFtZSI6InJzbWl0aHR5MyIsImlkIjoxMDAwNTQwMjcwLCJpYXQiOjE0MzI4Nzk0NjQsImV4cCI6MTQzMjkwMTA2NCwicm9sZXMiOlsiUk9MRV9VU0VSIiwiUk9MRV9zZXR0aW5ncyIsIlJPTEVfcGVvcGxlIiwiUk9MRV9wZW9wbGVfYWRkX25ldyIsIlJPTEVfcGVvcGxlX2VkaXQiLCJST0xFX3BlcnNvbl9lZGl0X3Blcm1pc3Npb24iLCJST0xFX3NldHRpbmdzX3Blcm1pc3Npb25zIiwiUk9MRV9zZXR0aW5nc19jdXN0b21fZmllbGRzIiwiUk9MRV9vZmZpY2UiLCJST0xFX3NldHRpbmdzX21pbmlzdHJ5X3NpdGVzIiwiUk9MRV9zZXR0aW5nc19taW5pc3RyeV9zaXRlc19hZGQiLCJST0xFX3NldHRpbmdzX2xlZ2FsIiwiUk9MRV9wZW9wbGVfZWRpdF9saXN0IiwiUk9MRV9vZmZpY2VfZmluYW5jaWFsIiwiUk9MRV9vZmZpY2VfYnVkZ2V0X3BsYW4iLCJST0xFX29mZmljZV9taW5zdGF0cyIsIlJPTEVfc2V0dGluZ3NfZmllbGRfbGFiZWxzIiwiUk9MRV9vZmZpY2VfYmdjaGVjayIsIlJPTEVfb2ZmaWNlX3ZlaGljbGUiLCJST0xFX29mZmljZV93b3JrZXJzY29tcCIsIlJPTEVfc2V0dGluZ3NfY3VzdG9tX2ZpZWxkX2dyb3VwcyIsIlJPTEVfc2V0dGluZ3NfdGV4dCIsIlJPTEVfc2V0dGluZ3NfZW1haWwiLCJST0xFX29mZmljZV9jaGFydGVyaW5nIiwiUk9MRV9ldmVudHMiLCJST0xFX3NldHRpbmdfY3VzdG9tcXVlc3Rpb25zIl0sImZ1bGxOYW1lIjoiUm9nZXIgU21pdGgiLCJjb3JlT3JnSWQiOiI0MjcifQ.V9B-TE_72D0YYE5FAHPB_pkYGhkAGiHRQzZjTEb0Jag:" );
$json = curl_exec($ch);
$people = json_decode($json);
print "people who have eric in their name:\n";
var_export($people);
答案 0 :(得分:1)
首先检查系统或服务器中是否启用了卷曲。 您可以使用包含此代码的简单页面进行检查。
<?php
phpinfo();
?>
如果启用了curl,它将显示在那里。如果未启用则启用它。你可以check this link。
接下来检查卷曲错误并清除它。 只需在curl_exec($ ch);
之后添加此代码即可 $ch = curl_init();
$data = array('qFunc' => 'searchActiveStaff', 'qArgs' => 'eric');
curl_setopt($ch,CURLOPT_URL,'http://api.yfcimpact.com/yfc_dev.php/api/usa/person?' . http_build_query($data) );
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_USERPWD, "ag:" );
if(curl_exec($ch) === false)
{
echo 'Error Details: ' . curl_error($ch);
}
else
{
echo 'Success';
}
答案 1 :(得分:0)
在某些API(如Facebook API)中,您注册了一个应用程序,以便每个令牌都与特定域绑定。因此,如果您使用的API具有相同的逻辑,则使用的令牌将绑定到您的服务器的域(specificpromotions.com),以便为了从不同的服务器(也称为不同的域)使用它,您将必须使用单独的令牌。
但是,我试图执行你的脚本,我可以用完全相同的链接格式从api中获取数据。
因此,在API的身份验证系统中肯定没有域绑定。因此,我认为您必须检查系统范围的配置,以找出curl无效的原因。
答案 2 :(得分:0)
您可以尝试使用curl_error查看curl操作返回的错误:http://php.net/manual/en/function.curl-error.php