在 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 应用程序中从网页导航到本地页面?