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

Posted

技术标签:

【中文标题】为啥用于 facebook 登录的 redirect_uri 的自定义方案不起作用?【英文标题】:Why is custom scheme for redirect_uri for facebook login not working?为什么用于 facebook 登录的 redirect_uri 的自定义方案不起作用? 【发布时间】:2017-06-19 07:28:24 【问题描述】:

问题答案: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());

当使用方案:http://https:// 用于 redirect_uri 时,Android 会显示对话框以从 MyTestApp 和浏览器中进行选择(不希望出现这种行为)。因此,尝试使用自定义方案:fb12345678 & host 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 中出现错误:

无法加载 URL:此 URL 的域未包含在应用的 领域。要加载此 URL,请添加您的所有域和子域 应用程序到应用程序设置中的应用程序域字段。

仅供参考,hovermind.com 已添加到“应用程序域”部分和“有效 OAuth 重定向 URI”部分(开发人员仪表板)。尝试在有效 OAuth 重定向 URI 部分添加 fb12345678://hovermind.com 时,Facebook 显示错误对话框。

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

也不想使用App Links(最小 SDK >= 23 和服务器配置问题)

【问题讨论】:

【参考方案1】:

我找不到任何解决方案或 *** 答案,因此得出使用 Facebook Login for Android 代替 WebView 的结论

【讨论】:

以上是关于为啥用于 facebook 登录的 redirect_uri 的自定义方案不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Facebook 登录没有要求正确的权限?

为啥 Facebook 登录不要求我提供电子邮件和密码

为啥 facebook sdk 会自动让我登录 iPhone 上安装的 facebook 应用程序?

为啥IOS13用facebook登录不起作用?

为啥用facebook登录不起作用? (除了检查网址,如何调试这个问题?)

为啥我的函数不会打开 React Native (Expo) 的 Facebook 登录页面?