PhoneGap 上 Facebook 登录的哈希键 构建和 PhoneGap 混合应用程序的 OAuth URL Facebook 登录

Posted

技术标签:

【中文标题】PhoneGap 上 Facebook 登录的哈希键 构建和 PhoneGap 混合应用程序的 OAuth URL Facebook 登录【英文标题】:Hash Key for Facebook Login on PhoneGap Build & OAuth URL for PhoneGap Hybrid App Facebook Login 【发布时间】:2018-09-03 19:59:43 【问题描述】:

我有一个网站,还需要通过 Phonegap Build 在应用程序上运行它。我需要实现 facebook 登录,所以我将以下代码放在 mywebsite.com/login.html 文件中,现在在浏览器上运行此文件时会出现错误:

login.html

   <html lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Login  </title>


 <script type="text/javascript">


  window.fbAsyncInit = function() 
    FB.init(
      appId            : 'my-app-id',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v2.12'
    );
  ;

  (function(d, s, id)

     var js, fjs = d.getElementsByTagName(s)[0];

     if (d.getElementById(id)) return;

     js = d.createElement(s); js.id = id;

     js.src = "https://connect.facebook.net/en_US/sdk.js";

     fjs.parentNode.insertBefore(js, fjs);

   (document, 'script', 'facebook-jssdk'));



        function login()
        


            facebookConnectPlugin.login(["public_profile", "email"], function(result)

                console.log(JSON.stringify(result));

                facebookConnectPlugin.api("/me?fields=email,name,picture",["public_profile", "email"], function(userData) 

                    alert(JSON.stringify(userData));

                ,function(error)
                    alert(JSON.stringify(errror));
                );




            ,function(error)
                alert(JSON.stringify(errror));
            );



         




 </script>

<button class="loginbtn" onclick="login();">Login with Facebook</button> 

未捕获的 ReferenceError:facebookConnectPlugin 未定义在 HTMLButtonElement.onclick 处的 login()

问题 1:是否需要包含一些 sdk 文件才能消除此错误?

问题2:开发者控制台需要保存的URL是什么?

我将此代码放在 PhoneGap Build 的 index.html 文件中并获取了 APK,在执行时,它会打开本机 Facebook 应用程序进行登录,我登录但登录后它说 Given URL not允许。

我需要在 Facebook 的开发人员控制台上允许的 URL 是什么。另外,如果我使用这种方法,我将如何将获取的详细信息发送到我的在线服务器。在这种方法中,我的登录 UI 将驻留在 PhoneGap 本地文件中,其余的网站代码将在我的 Web 服务器上在线。这可能吗?

【问题讨论】:

【参考方案1】:

你需要cordova插件cordova-plugin-facebook5。

https://www.npmjs.com/package/cordova-plugin-facebook5。

这使您可以集成到手机上的实际 facebook 应用程序,并回退到网络。

【讨论】:

:如果在我的本地PhoneGap应用程序中登录成功,我如何转到下一页?我没有使用jquery mobile,还有其他出路吗? 您应该得到实际插件的响应。 facebookConnect.Plugin.login(["public_profile"], function (deets), failure)

以上是关于PhoneGap 上 Facebook 登录的哈希键 构建和 PhoneGap 混合应用程序的 OAuth URL Facebook 登录的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap Facebook 插件 - 从 Android 设备中删除应用程序后密钥哈希无效

如何使用android studio在phonegap中添加facebook登录

Cordova / Phonegap 应用程序 - 更改 Facebook 帐户

使用 xCode 登录 facebook 的 Phonegap 3.0 应用程序

Phonegap 建立 Facebook 登录

Phonegap Cordova 使用 Facebook 登录