Instagram私人InstagramAPI \ Instagram :: _ setUser()错误

时间:2018-06-03 22:21:42

标签: php laravel instagram instagramapi-mgp25

我正在尝试在laravel上实现https://github.com/mgp25/Instagram-API,在Instagram成功登录后,我必须使用_setUser在登录后使用现有数据,例如:

public function check()
{
    $username = 'XXX';
    $password = 'XXX';
    $ig = new Instagram();
    try {
        $ig->_setUser($username, $password);
    } catch (\Exception $e) {
        echo 'Something went wrong: '.$e->getMessage()."\n";
        exit(0);
    }
}

在此代码中我收到此错误:

"Call to protected method InstagramAPI\Instagram::_setUser() from context 'App\Http\Controllers\InstagramController'"

3 个答案:

答案 0 :(得分:1)

此_setUser方法以前在以前的版本中是公共的。 API的开发人员似乎建议您为每次调用使用login()函数,它将检查是否需要完成新的完整登录,如果不需要完成,将调用_setUser。

过去,对每个请求执行login()都很慢,但是现在使用较新版本的私有API似乎要好得多。

答案 1 :(得分:0)

登录时,您可以使用以下代码段:

$username = 'password';
$password =  'username';
$instagram = new Instagram(false, true, [
        'storage'    => 'mysql',
        'dbhost'     => 'localhost',
        'dbname'     => 'sessions',
        'dbusername' => 'root',
        'dbpassword' => '',
    ]);
$instagram->login($username, $password);

并且对于访问用户ID,您可以执行此操作:

$instagram->people->getUserIdForName($username);

在您成功登录后,尝试使用此帐户访问当前用户:

$instagram->account->getCurrentUser()->getUser();

答案 2 :(得分:0)

_setUser函数是私有的,您可以编辑私有到公共函数,然后只有您可以使用该函数,并且即使您不进行更改,由于文件夹中的会话处于活动状态,它将自动采用_setUser方法。您可以在下方查看

const