我正在尝试解决登录帐户时Instagram所面临的挑战,我正在使用mgp25 Instagram API库(V 4.1.0稳定)
我能够嗅出必要的请求以解决挑战,但是将它们添加到库中时遇到了问题
我编写了此功能,以便将代码请求到我的电子邮件或电话中
// Challenge url on this format /challenge/1463452997/1zS1L8kl62/
public function sendChallenge($challenge_url)
{
return $this->request($challenge_url)
->addParam('choice', 1)
->addPost('device_id', $this->device_id)
->addPost('guid', $this->uuid)
->addPost('_csrftoken', $this->client->getToken())
->getResponse(new Response\UserInfoResponse());
}
我的问题是,无论我把它放在哪里,只要我请求此函数,我总会得到
“用户尚未登录。请致电login(),然后重试。”
所以登录失败(检索挑战网址所必需)后如何使用此功能而又不会导致用户未登录异常
答案 0 :(得分:1)
解决方案是设置setNeedsAuth(false)
// Challenge url on this format /challenge/1463452997/1zS1L8kl62/
public function sendChallenge($challenge_url)
{
return $this->request($challenge_url)
->setNeedsAuth(false)
->addParam('choice', 1)
->addPost('device_id', $this->device_id)
->addPost('guid', $this->uuid)
->addPost('_csrftoken', $this->client->getToken())
->getResponse(new Response\UserInfoResponse());
}
答案 1 :(得分:1)
这对我有用:
步骤:
答案 2 :(得分:0)
在向instagram发送请求之前,您必须选择要发送的人 您可以在代码中添加以下行,然后选择用户
// Challenge url on this format /challenge/1463452997/1zS1L8kl62/
public function sendChallenge($username, $password, $challenge_url)
{
//this line require for select user that your login in before
$this -> changeUser ($username, $password);
return $this->request($challenge_url)
->addParam('choice', 1)
->addPost('device_id', $this->device_id)
->addPost('guid', $this->uuid)
->addPost('_csrftoken', $this->client->getToken())
->getResponse(new Response\UserInfoResponse());
}