为什么facebook登录的redirect_uri自定义方案不起作用?

时间:2017-06-19 07:28:24

标签: android facebook facebook-graph-api webview

回答问题:facebook redirect_uri set to ios URL Scheme没有解决我的问题。

尝试在Android WebView中实现Facebook登录(使用Facebook SDK正在运行,但出于某些原因希望在WebView中实现):

private void launchFacebookOauth() {

    // intent
    Intent intent = new Intent(Intent.ACTION_VIEW, getAuthorizationUri());
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);
    finish();

}  

public Uri getAuthorizationUri() {

    final String CLIENT_ID = "client_id";
    final String RESPONSE_TYPE = "response_type";
    final String REDIRECT_URI = "redirect_uri";
    final String CODE = "code";


    Map<String, String> params = new HashMap<>();
    params.put(CLIENT_ID, clientId);
    params.put(RESPONSE_TYPE, CODE);
    params.put(REDIRECT_URI, redirectUri);


    Request request = new Request.Builder().url(AUTHORIZATION_ENDPOINT_URL).build();
    HttpUrl.Builder builder = request.url().newBuilder();
    for (Map.Entry<String, String> param : params.entrySet()) {
        builder.addQueryParameter(param.getKey(), param.getValue());
    }
    HttpUrl httpUrl = builder.build();

    return Uri.parse(httpUrl.toString());
}

对redirect_uri使用方案:http://https://时,Android会显示对话框,可从MyTestApp&amp;浏览器(不想要这种行为)。因此,尝试使用自定义方案:fb12345678&amp;主持人hovermind.com

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="fb12345678" android:host="hovermind.com"/>
    </intent-filter> .   
  

redirect_uri:fb12345678://hovermind.com

在WebView中获取错误:

  

无法加载网址:此网址的域名未包含在应用内容中   域。要加载此网址,请添加您的所有域和子域   应用程序设置中的应用程序域字段的应用程序。

仅供参考,“{1}}已添加到应用领域&#39;部分和&#39;有效的OAuth重定向URI&#39;部分(开发人员仪表板)。尝试在“有效OAuth重定向URI”部分中添加hovermind.com时,Facebook会显示错误对话框。

如何使用WebView(Facebook登录)中的自定义redirect_uri方案来实现我的应用程序?

  

不想使用fb12345678://hovermind.com(min.SDK&gt; = 23和服务器配置问题)

1 个答案:

答案 0 :(得分:0)

我找不到任何解决方案或StackOverflow答案&amp;因此得出结论,使用Facebook Login for Android而不是WebView