アカウントにログインするときにInstagramから要求される課題を解決しようとしています。mgp25Instagram 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()を呼び出してから、再試行してください。」
ログインに失敗した後(チャレンジURLを取得するために必要)に、ユーザーがログインしない例外を取得せずにこの関数を使用するにはどうすればよいですか
これは私のために働きました:
手順:
解決策は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());
}
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());
}