使用“使用 Facebook 登录”选项登录 Instagram 时遇到问题

问题描述 投票:0回答:3

我使用 Basic Display API 实现了 Instagram 登录。如果用户在加载

https://api.instagram.com/oauth/authorize
请求时出现的 Web 视图中输入他们的 Instagram 凭据,一切正常。之后,我可以从 Instagram 帐户中提取用户的媒体。它告诉我一切都已正确实施。

现在,如果用户在 WebView 中选择“使用 Facebook 登录”选项并通过 Facebook 登录流程,当我在模拟器上运行它时一切仍然正常:在 Facebook 使用 2 因素身份验证完成其登录流程后,我最终得到重定向回调,从中解析代码,其余所有工作正常。

但在物理设备上同样失败。在我调用

https://api.instagram.com/oauth/access_token
获取带有获得的代码的令牌后,Instagram 应用程序立即启动,然后打开 Safari 并出现此错误:

{"message":"Logged-in use not
supported","status":"fail"}

什么给?这是令人难以置信的沮丧,一天被浪费了,不知道从这里去哪里。有什么想法吗?

更新: 它在设备上表现不同的原因是因为它安装了 Instagram 应用程序,并且当 Facebook 调用

https://www.instagram.com/accounts/signup/...
端点返回 Instagram 身份验证流程时启动该应用程序(我正在观察来自 WkWebView 的请求)。 Instagram 应用程序会在上面抛出该错误,而在模拟器上,Instagram 后端似乎可以很好地为端点提供服务,并且流程会继续进行。 所以问题是如何让 Instagram 应用程序脱离循环。


更新2: 已确认 - 一旦我从设备上删除了 Instagram 应用程序,它就会按预期运行。一旦我重新安装它,它就会在 Facebook 的身份验证流程中再次启动,问题又回来了。这似乎是 Instagram 应用程序中的错误,我没有其他解释。

ios swift facebook instagram-api
3个回答
2
投票

好吧,在经历了很多死胡同和模糊不清的兔子洞之后,我疯狂地往下走,我得出结论,真正的问题是 Instagram 应用程序中的错误。正如我的问题更新中所述,在我删除 Instagram 后,流程开始正常工作。

还没有准备好下结论 我尝试了 Appstore 中具有连接到 Instagram 功能的其他一些应用程序。他们都以完全相同的方式失败。具体来说,如果您在 Instagram 登录 WebView 上选择“继续使用 Facebook”,您最终会启动 Instagram 应用程序(如果已安装),这反过来会在 Safari 中引发错误,并且您会被卡住。

你知道最有趣的事情是什么吗?如果您下载 Instagram 应用程序本身并尝试使用相同的 Facebook 流程登录,它也会失败!

吸取的教训 - 在您怀疑自己在实施过程中犯了错误之前,请检查其他一些具有相同功能的应用程序,也许您会发现您并不孤单。


1
投票

文档 说你应该向这个 URL 发送一个 POST 请求:

第 2 步:兑换代币代码

收到代码后,通过以下方式将其交换为短期访问令牌 向以下端点发送 POST 请求:

POST https://api.instagram.com/oauth/access_token

我不明白你为什么要将用户重定向到这个端点?


0
投票

我遇到了完全相同的问题,唯一的解决方法是清除 WKWebView 的缓存和 cookie,因此用户应该再次重新输入登录名和密码。

所以在加载您的网络视图之前使用这个snippet

© www.soinside.com 2019 - 2024. All rights reserved.