android - 如何在android中使用API​​登录页面?

标签 android

我正在尝试开发一个 Android 应用程序,它要求用户使用一些第三方登录 API(例如 Terracycle 登录页面)登录。

从 API 我可以推断,如果我一直在开发一个 Web 应用程序,那么这将是一项简单的任务。我可以使用登录表单来获取用户凭据,然后经过身份验证后,我会将其重定向到我的网站链接。

但是对于 Android 应用程序我该如何做同样的事情。 简而言之,我想在android中使用Terracycle(或者可能是google+)表单进行登录,然后尝试获取身份验证 token 。

我必须使用 WebView 来打开登录表单吗?
如果我使用它,如何阻止它重定向网址并强制它转到重定向 Activity ?
那么如何获取 OAuth 2.0 token ?

谢谢

最佳答案

我假设您指的是 this Terracycle site .

根据他们的 API http://developers.terracycle.co.uk/devportal/docs/getting_started您必须显示一个 WebView 来显示授权屏幕。然后在用户授权后,webview将被重定向到您提供给他们的重定向url。

您使用 WebViewClientshouldOverrideUrlLoading 拦截此调用方法。

public boolean shouldOverrideUrlLoading(WebView view, String url){
    // handle by yourself
    return true; 
}

然后,您可以从代码参数 &code= 中获取代码,然后使用该代码将其发送到 API

POST https://api.terracycle.co.uk/oauth/token

这将为您提供一个可以在所有请求中使用的访问 token 。

关于android - 如何在android中使用API​​登录页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123267/

相关文章:

android - 没有可用的互联网连接时强制关闭应用程序

android - 在 BackPressed 上跳过一些 fragment

android - 如何根据方向在android中的textview中 "truncate"文本?

java - 内存泄漏 - 调试器和内存分析器不同意

android - 在后台运行时显示弹出窗口的权限

java - 如何在不切割 Java 之间的单词的情况下获取子字符串?

android - Flutter重新运行内部StatefulWidget的initState函数

java - 应用程序关闭后 Android TimerTask 未完成

java - UtteranceProgressListener 不会调用函数

android - 无法使用 FileProvider 打开普通文本文件