问题描述
我正试图遵循the documentation来获取laravel的instagram用户个人资料信息和供稿。我没有办法在http:// localhost:8000 / callback_address上设置redirect_uri参数。如果我这样做,我会收到消息:
{
"error_type": "OAuthException","code": 400,"error_message": "Invalid redirect_uri"
}
我试图在Facebook开发者控制台中添加有效的OAuth重定向URI,但是却收到一条错误消息,提示我应该使用HTTPS。我也尝试使用社交名媛,但我得到了同样的错误。奇怪的是,Facebook OAuth接受了HTTP重定向uri地址(默认情况下,无需在开发人员控制台中编写),而Instagram Basic display则不接受。
return redirect('https://api.instagram.com/oauth/authorize?client_id={my-client-id}&redirect_uri=https://localhost:8000/login/instagrambasic/callback&scope=user_profile,user_media&response_type=code')
我应该在开发中使用HTTP协议,有什么主意吗?我已经坚持了一天,眼睛流血了。
解决方法
您可能只需要urlencode()
重定向URI。尝试这样的事情:
$query_data = array(
'client_id' => '{my-client-id}','redirect_uri' => 'https://localhost:8000/login/instagrambasic/callback','scope' => 'user_profile,user_media','response_type' => 'code'
);
$url = sprintf('https://api.instagram.com/oauth/authorize?%s',http_build_query($query_data);
return redirect($uri);
如果您使用的是Socialite,将为您完成此操作,但请确保使用socialiteproviders/instagram-basic软件包,而不要使用旧的socialiteproviders/instagram软件包,因为这是API v1的版本,不再受支持。