ramsey/laravel-oauth2-instagram

league/oauth2-instagram 的 Laravel 5 服务提供者。

3.0.0 2019-01-07 23:48 UTC

This package is auto-updated.

Last update: 2024-09-08 14:34:51 UTC


README

Source Code Latest Version Software License PHP Version Build Status Coverage Status Total Downloads

ramsey/laravel-oauth2-instagram 是一个 Laravel 5 服务提供者,用于 league/oauth2-instagram

本项目遵循 贡献者行为准则。通过参与此项目和其社区,你应遵守此准则。

安装

推荐安装方式是通过 Composer。运行以下命令安装软件包并将其添加到项目的 composer.json 文件的要求中

composer require ramsey/laravel-oauth2-instagram

使用 Composer 添加要求后,你需要在 config/app.php 文件中的 providers 数组中添加以下内容

Ramsey\Laravel\OAuth2\Instagram\InstagramServiceProvider::class

然后,在同一文件中的 aliases 数组中添加以下内容

'Instagram' => Ramsey\Laravel\OAuth2\Instagram\Facades\Instagram::class

现在,运行以下命令以使用 Laravel 应用程序正确设置软件包

php artisan vendor:publish

最后,在 Instagram 上注册您的应用程序,并将客户端 ID、客户端密钥和重定向 URI 添加到 config/instagram.php

示例

创建一个授权 URL 并将用户重定向到该 URL 以请求访问他们的 Instagram 账户

$authUrl = Instagram::authorize([], function ($url, $provider) use ($request) {
    $request->session()->put('instagramState', $provider->getState());
    return $url;
});

return redirect()->away($authUrl);

在重定向 URI 的路由中检查状态和授权代码,并使用代码获取访问令牌。将令牌存储在会话中或存储在您的数据存储库中的用户配置文件中。

if (!$request->has('state') || $request->state !== $request->session()->get('instagramState')) {
    abort(400, 'Invalid state');
}

if (!$request->has('code')) {
    abort(400, 'Authorization code not available');
}

$token = Instagram::getAccessToken('authorization_code', [
    'code' => $request->code,
]);

$request->session()->put('instagramToken', $token);

使用访问令牌对 Instagram 进行认证请求。

$instagramToken = $request->session()->get('instagramToken');

$instagramUser = Instagram::getResourceOwner($instagramToken);
$name = $instagramUser->getName();
$bio = $instagramUser->getDescription();

$feedRequest = Instagram::getAuthenticatedRequest(
    'GET',
    'https://api.instagram.com/v1/users/self/feed',
    $instagramToken
);

$client = new \GuzzleHttp\Client();
$feedResponse = $client->send($feedRequest);
$instagramFeed = json_decode($feedResponse->getBody()->getContents());

贡献

欢迎贡献!请阅读 CONTRIBUTING 以获取详细信息。

版权和许可

ramsey/laravel-oauth2-instagram 库版权 © Ben Ramsey,并按 MIT 许可证(MIT)授权使用。请参阅 LICENSE 以获取更多信息。