使用带有PHP和Curl的API登录
我正在尝试从API登录并返回配置文件信息,以下是文档的登录部分: 使用指定电子邮件创建的帐户登录。需要现有的基于电子邮件的帐户。有效登录将导致重定向到/99/profile页面,并生成新的sessionid cookie。sessionid保留用户登录,并且持续时间较长(持续数周不活动) 他们建议的PHP代码是:使用带有PHP和Curl的API登录,php,api,cookies,curl,login,Php,Api,Cookies,Curl,Login,我正在尝试从API登录并返回配置文件信息,以下是文档的登录部分: 使用指定电子邮件创建的帐户登录。需要现有的基于电子邮件的帐户。有效登录将导致重定向到/99/profile页面,并生成新的sessionid cookie。sessionid保留用户登录,并且持续时间较长(持续数周不活动) 他们建议的PHP代码是: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://99motos.apiary.io/account
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://99motos.apiary.io/accounts/login/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=string&password=string");
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
?>
但可能是前面的错误,它返回“用户不存在”,它应该返回:
200 (OK)
{
"id": 0,
"initial_name": "John Doe",
"first_login": True,
"is_individual": False,
"is_rider": False,
"need_device_info": True,
}
有人吗?\。很抱歉这个冗长的问题。。。谢谢。在curl中使用follow location选项,以便它自动重定向到指向
位置的url:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
另外,使用cookie jar存储cookie,并使用cookie文件将cookie与请求一起使用,以避免与会话相关的错误
$__FILE_COOKIE = "c:/temp/cookie.txt"; // or /var/tmp/cookie.txt
curl_setopt($ch, CURLOPT_COOKIEJAR, $__FILE_COOKIE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $__FILE_COOKIE);
我不知道在哪里可以不用文件就使用cookie jar。在其他语言(如PERL)中,它可以。对PHP不太清楚。买的方式,编辑/删除您的***从以前的评论,否则一些版主可以标记为标志!我很高兴看到它对你有用:-)不得不删除评论。谢谢
$__FILE_COOKIE = "c:/temp/cookie.txt"; // or /var/tmp/cookie.txt
curl_setopt($ch, CURLOPT_COOKIEJAR, $__FILE_COOKIE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $__FILE_COOKIE);