9

我正在使用react-native-instagram-loginReact Native。

这是我的代码

<InstagramLogin
  ref={instagramLoginRef}
  appId='***********'
  appSecret='*******************'
  scopes={['user_profile', 'user_media']}
  onLoginSuccess={(data) => console.log("Success")}
  onLoginFailure={(data) => console.log("Fail " +  JSON.stringify(data))}
/>

我收到以下错误

{"error_type": "OAuthException", "code": 400, "error_message": "Invalid redirect_uri"}

在 Instagram 开发者控制台中,我应该添加什么作为重定向 Uri,因为这不是一个网站,而是一个反应原生应用程序。

4

1 回答 1

6

来自Instagram 基本显示 API

有效的 OAuth 重定向 URI

输入您网站的网址。通常这将是一个可以捕获重定向查询字符串参数的专用 URI,但对于本教程,您的网站的 URL 就可以了。

例如:https://socialsizzle.heroku.com/auth/

输入 URL 后,保存更改并再次检查 URL;根据您的 URL 结构,我们可能会附加一个尾部正斜杠。将完整的 URL 复制到某处,因为您将在后面的步骤中需要它来获取授权代码和访问令牌。

在此示例代码中,我们看到redirectUrl='https://www.google.com',这意味着您可以设置任何您想要的。它对于收集登录数据统计信息和拥有用于日志记录的后端端点很有用。

<InstagramLogin
  ref={instagramLoginRef}
  clientId="931cca1d0c154de3aafd83300ff8b288"
  redirectUrl="https://google.com"
  scopes={['basic']}
  onLoginSuccess={token => this.setState({ token })}
  onLoginFailure={data => this.setState({ failure: data })}
/>

也看看这个问题“完成时没有响应”,它说redirectUrl必须以 a 开头,www因为react-native-webview. 同样在这个问题上,您会看到用户示例代码具有 Firebase 函数端点 URL redirectUrl="https://us-central1-xxx.cloudfunctions.net/url_get&response_type=token",因此它使用 Firebase 来记录/反馈登录请求。

最后,在Facebook Developer Console中,您只需输入Valid OAuth Redirect URIs

Facebook 开发者控制台

这意味着您输入您接受 API 重定向的 URL;它更像是一种安全机制,但您必须在此处输入重定向 URL,否则 API 将无法工作。

于 2020-02-27T16:01:02.680 回答