在我的应用程序中,我有3种不同的方式来使用Instagram Auth,需要根据操作重定向到3个不同的地方。因此,我有3个不同的身份验证网址
我的注册重定向网址为http://nameoftheapp.com/folder/
验证网址1
https://api.instagram.com/oauth/authorize/?client_id='
+ ig_id
+ '&response_type=code&redirect_uri='
+ encodeURI('http://nameoftheapp.com/folder/?l=r');
验证网址2
https://api.instagram.com/oauth/authorize/?client_id='
+ ig_id
+'&response_type=code&redirect_uri='
+ encodeURI('http://nameoftheapp.com/folder/?l=g');
验证网址3
https://api.instagram.com/oauth/authorize/?client_id='
+ ig_id
+'&response_type=code&redirect_uri='
+ encodeURI('http://nameoftheapp.com/folder/?l=l');
现在,所有这些网址都会将我返回到正确的网址,并附上代码,随时可以转换为访问令牌。
如果没有EncodeURI中的参数,我可以访问我需要的数据。如果我保留参数,我会得到HTTP400错误
[23-Aug-2014 10:26:40 Europe/Berlin] Array
(
[code] => 400
[error_type] => OAuthException
[error_message] => Redirect URI doesn't match original redirect URI
)
如果您在Instagrams文档中查看此页面,它表示它允许您使用参数http://instagram.com/developer/authentication/
答案 0 :(得分:3)
我在使用PHP获取访问令牌时遇到了同样的问题,我使用相同的redirect_uri URL发出了这个问题,例如:
如果在Instagram登录后使用的身份验证网址为http://nameoftheapp.com/folder/?l=l
,则会将您发送至redirect_uri http://nameoftheapp.com/folder/?l=l&code=<CODE>
。因此,在此文件中,要从Instagram获取信息或访问令牌的CURL参数,请使用具有相同GET变量的相同URL http://nameoftheapp.com/folder/?l=l
。
我知道这是一篇旧帖子,但这可能会对像我这样的帖子有所帮助,在这篇文章中以搜索答案结尾。
答案 1 :(得分:0)
文档显示
已注册的重定向URI http://yourcallback.com/callback
你有
我的注册重定向网址为http://nameoftheapp.com/folder/
尝试删除结束斜杠...?