我正在使用Instagram API libraries将用户连接到Instagram个人资料,然后使用它进行操作。所以,正如Instagram API wiki所说:
初始化InstagramAPI课程后,您必须登录帐户。
$ig = new \InstagramAPI\Instagram(); $ig->login($username, $password); // Will resume if a previous session exists.
我初始化了InstagramAPI类,然后调用了$ig->login('username', 'password');
。但我必须在我需要与Instagram合作的每个功能中调用它...
那么如何保存此对象$ig
以便将来在其他控制器中使用它而不再调用login()
?我可以将$ig
对象保存到会话或cookie文件中吗?
P.S。我认为保存到会话中并不是解决这个问题的安全方法。
UPD :我试图将$ig
对象保存到会话中,但是如果非常大且会话也会停止工作。
答案 0 :(得分:0)
关于您在评论部分中提到的register
方法,您需要在app\providers
目录中创建新的service provider类,并在那里声明register
方法例如:
namespace App\Providers;
use InstagramAPI\Instagram;
use Illuminate\Support\ServiceProvider;
class InstagramServiceProvider extends ServiceProvider
{
public function register()
{
// Use singleton because, always you need the same instance
$this->app->singleton(Instagram::class, function ($app) {
return new Instagram();
});
}
}
然后,在InstagramServiceProvider
文件中的providers
数组中添加新创建的config/app.php
类,例如:
'providers' => [
// Other ...
App\Providers\InstagramServiceProvider::class,
]
现在,在任何控制器类中,只要您需要Instagram
实例,只需调用App::make('InstagramAPI\Instagram')
或只需调用全局函数app('InstagramAPI\Instagram')
,甚至可以typehint
1}}任何方法/构造函数中的类等。一些例子:
$ig = App::make('InstagramAPI\Instagram');
$ig = App::make(Instagram::class); // if has use statement at the top fo the class
$ig = app('...');
在作为依赖项的类方法中:
public function someMethod(Instagram $ig)
{
// You can use $ig here
}
希望这有帮助,但正确阅读documentation,将会记录所有内容。