如何解决instagram oauth问题确保您的redirect_uri与您在OAuth对话框请求中使用的相同
我正在尝试从instagram个人资料中获取基本数据,我正在使用本地webpack开发服务器来运行我的react应用,我也正在使用Firebase函数,firebase上的函数向instagarm的api发送oauth / authorize请求,即时获取代码响应返回并返回到我的反应弹出窗口,然后我将代码发送到oatuh / access_token的instagrams api,但是我收到以下错误:
验证码错误。请确保您的redirect_uri与您在OAuth对话框请求中使用的相同。
我使用ssl将localhost:3000作为https运行,我已将instagram开发人员工具中的redirecturl设置为https:// localhost:3000 / instagram-popup /
弹出窗口是我正在加载的页面,用于获取访问令牌,它确实从firebase函数中正确获取了代码,但最后一次调用失败...如果有任何人,我在这个问题上损失了很多时间一直处于这种情况并解决了它,或者甚至没有遇到过,但是知道我能做些什么来解决,我真的很感谢这里的任何指导
解决方法
我遇到了同样的错误。我正在使用Laravel7。我希望对此有个解决办法。
public function redirectToInstagramProvider()
{
$appId = config('services.instagram.client_id');
$redirectUri = urlencode('https://sololaraveling.com/login/instagram/callback');
// return redirect()->to("https://api.instagram.com/oauth/authorize?app_id={$appId}&redirect_uri={$redirectUri}&scope=user_profile,user_media&response_type=code");
return redirect()->to("https://api.instagram.com/oauth/authorize?client_id={$appId}&redirect_uri={$redirectUri}&scope=user_profile,user_media&response_type=code");
}
public function instagramProviderCallback(Request $request)
{
$code = $request->code;
if (empty($code)) return redirect()->route('home')->with('error','Failed to login with Instagram.');
$appId = config('services.instagram.client_id');
$secret = config('services.instagram.client_secret');
$redirectUri = urlencode('https://sololaraveling.com/login/instagram/callback');
$params = array( // post parmas
'client_id' => $appId,'client_secret' => $secret,'grant_type' => 'authorization_code','redirect_uri' => $redirectUri,'code' => $code
);
Array
(
[error_type] => OAuthException
[code] => 400
[error_message] => Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
)