在 PhoneGap Build 中从 Facebook 获取信息

Posted

技术标签:

【中文标题】在 PhoneGap Build 中从 Facebook 获取信息【英文标题】:Getting information from Facebook inside PhoneGap Build 【发布时间】:2016-03-31 12:34:25 【问题描述】:

已根据 JesseMonroy650 的要求编辑:

我之前做过几个混合应用,但都没有商业发布。 我正在使用 PhoneGap 构建。位于此处:https://build.phonegap.com/ 我没有使用任何桌面应用程序。

原创内容:

我正在尝试在 PhoneGap Build 中从 Facebook 获取数据。

我有一个简单的脚本,它似乎应该基于API:

<script>
            document.addEventListener("deviceready", onDeviceReady, false);

            function onDeviceReady() 

                var fbLoginSuccess = function(userData) 
                    alert("UserInfo: " + JSON.stringify(userData));
                    facebookConnectPlugin.getAccessToken(function(token) 
                        alert("Token: " + token);
                    , function(err) 
                        alert("Could not get access token: " + err);
                    );
                
                facebookConnectPlugin.login(["public_profile"],
                        fbLoginSuccess,
                        function(error) 
                            alert("" + error)
                        
                );
            
</script>

而且我相信我已经正确设置了我的 config.xml:

<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0">
    <param name="APP_ID" value="<ACTUAL APP ID HERE>" />
    <param name="APP_NAME" value="<ACTUAL APP NAME HERE>" />
</gap:plugin>

但我没有收到任何关于此的警报(或控制台日志,当我尝试时)。

    所以我的问题是 - 我在这里正确使用 PhoneGap Build Facebook API 吗?我应该怎么做?

    这是一个不太重要的问题 - 如果有人能指出我如何在不在本地安装 Cordova 的情况下在浏览器中运行相同的进程 - 如果可能的话

【问题讨论】:

您使用的是哪个版本的phonegap-version 你的回答让我很疑惑。所以我必须问一些问题。请在您的帖子中回答以下问题。这是您的第一个混合应用程序吗?您在使用桌面应用程序吗?你在使用CLI, SDK or Build 吗?请不要假设答案,请阅读链接。一旦您回答了帖子中的问题,请在 cmets 中回复,以便我知道您已在帖子中添加信息。 我想使用 PhoneGap Build,如我的标题和问题中所示。如果不安装 CLI 就无法使用 Facebook API,那就这样吧,但最终产品将使用 PhoneGap Build 构建。 我再问一次。这是您的第一个混合应用程序吗?您在使用桌面应用程序吗?你在用CLI, SDK or Build吗?请不要假设答案,请阅读链接。一旦您在帖子中回答了问题,请在 cmets 中回复,以便我知道您已在帖子中添加信息。 facebook插件是最麻烦的插件之一,仅次于谷歌的GMC。这个插件的主要失败是对 Phonegap 工作原理的误解。接下来是转录错误和不正确的版本。之后是whitelist 插件和相关CSP 的不当应用。最后但并非最不重要的是,同一设备上的竞争应用程序;那是另一个使用 facebook 服务的应用程序(并且可能是相同的插件)。 -- 正如你想象的那样,给你任何形式的*答案*,都没有什么价值。 【参考方案1】:

我认为您缺少一些分号(例如声明 fbLoginSuccess var 的分号),请尝试使用此代码

<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() 

    var fbLoginSuccess = function (userData) 
        alert("UserInfo: " + JSON.stringify(userData));
        facebookConnectPlugin.getAccessToken(function (token) 
            alert("Token: " + token);
        , function (err) 
            alert("Could not get access token: " + err);
        );
    ;
    facebookConnectPlugin.login(["public_profile"],
            fbLoginSuccess,
            function (error) 
                alert("" + error);
            
    );

</script>

【讨论】:

【参考方案2】:

第一个问题:

将以下内容添加到您的 config.xml 中,并确保将 config.xml 与 index.html 文件一起放在根文件夹中:

<gap:plugin name="com.phonegap.plugins.facebookconnect">
    <param name="APP_ID" value="..." />
    <param name="APP_NAME" value="..." />
</gap:plugin>

将以下内容添加到您的 index.html 文件和您要访问插件脚本的每个 .html 文件中:

<script scr="phonegap.js"></script>
<script src="cdv-plugin-fb-connect.js"></script > 
<script src="facebook-js-sdk.js"></script >

现在,阅读并遵循位于here 的文档。请务必注意标题为“Facebook 要求和设置”的段落。

完成后,将您的压缩项目上传到build.phonegap.com,然后等待您的项目编译完成。

第二个问题:

如果不安装 Cordova,则无法通过任何方式在浏览器上对其进行测试。目前它是“开箱即用”

【讨论】:

以上是关于在 PhoneGap Build 中从 Facebook 获取信息的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Phonegap 中从 javascript 调用本机函数

使用 NSString 变量在 PhoneGap 中从 Objective C 编写 JavaScript

如何在我的 phonegap 应用程序中从网页导航到本地页面?

facebook phonegap 插件未出现在 xcode 中

如何在 build.phonegap.com 中添加插件

我可以使用 Phonegap Build 在 Phonegap 中播放视频吗