我尝试通过 Instagram 登录,我引用 LaravelでInstagramに投稿された写真を全取得してみた
当我尝试登录时,出现一些问题,它重定向到主页,无法显示任何用户信息,但我想在页面上显示用户信息。 我该如何解决这个问题?谢谢。
一步一步:
1.安装cosenary/instagram
composer require cosenary/instagram
3.在 ../config/instagram.php 上设置 'client_id' 、'client_secret' 和 'callback_url':
<?php
return [
'client_id' => '0264df4679584XXXXXX313e5bd90',
'client_secret' => '6eXXXXXXf369298c5433084ee21',
'callback_url' => 'http://localhost/',
'scopes' => 'basic public_content'
];
4.InstagramController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use MetzWeb\Instagram\Instagram;
class InstagramController extends Controller
{
private $instagram;
function __construct() {
$this->instagram = new Instagram(array(
'apiKey' => config('instagram.client_id'),
'apiSecret' => config('instagram.client_secret'),
'apiCallback' => config('instagram.callback_url')
));
}
public function instagramLogin() {
return redirect($this->instagram->getLoginUrl(array(
'basic'
)));
}
public function instagramCallback(Request $request) {
$code = $request->code;
$data = $this->instagram->getOAuthToken($code);
$this->instagram->setAccessToken($data);
$user_data = $this->instagram->getUser();
dd($user_data);
echo '<pre>';
var_dump($user_data);
echo '</pre>';
}
}
5.设置../routes/web.php
Route::get('login/instagram/', 'InstagramController@instagramLogin');
# Instagram callback
Route::get('login/instagram/callback/', 'InstagramController@instagramCallback');
最佳答案
您将被重定向到 http://localhost
,这只是 Laravel 主页。
您需要重定向到 Instagram 回调路由。
在 config/instagram.php
中更新您的设置:
'callback_url' => 'http://localhost/login/instagram/callback',
或者如果您设置了 .env:
'callback_url' => env('APP_URL') . '/login/instagram/callback',
关于php - Laravel5.4 中 Instagram 登录 OAuth 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007932/