Частный Instagram API | ChallengeRequired проблема - PullRequest
0 голосов
/ 05 декабря 2018

Я использую mgp25 приватный инстаграм api для своих нужд.

Время от времени я получаю сообщение об ошибке ChallengeRequired, которое решаю, как показано ниже:

/**
 * Резолвим челлендж
 *
 * @param array $data
 * @return bool
 * @throws UserRegistrationException
 */
public function resolveChallenge(array $data): bool
{
    $this->client = $this->getInstagramClient();
    $this->client->changeUser($data['login'], $data['password']);

    $customResponse = $this->client->request($data['url'])->setNeedsAuth(false)->addPost("security_code", $data['code'])->getDecodedResponse();

    if (!is_array($customResponse)) {
        throw new Exception('Не удалось подтвердить вход');
    }

    $this->isMakeLogin = true;

    // Зашли
    if ($customResponse['status'] == "ok" && isset($customResponse['logged_in_user']) && (int)$customResponse['logged_in_user']['pk'] === (int)explode('/', $data['url'])[1]) {
        return $this->registerUserIfNotExists($data['login'], $data['password']);
    }

    // mgp25
    if ($customResponse['status'] === 'ok' && $customResponse['action'] === 'close') {
        return $this->registerUserIfNotExists($data['login'], $data['password']);
    }

    throw new Exception(isset($customResponse['message']) ? $customResponse['message'] : json_encode($customResponse));
}

После того, как проблема решена, я вызываю функцию:

return $this->registerUserIfNotExists($data['login'], $data['password']);

Который вызывает метод API входа в систему и запрашивает некоторые данные учетной записи, а иногда я снова получаю ошибку ChallengeRequired (цикл).

В чем причина?

...