我最近将phonegap-facebook-plugin(https://github.com/phonegap/phonegap-facebook-plugin)整合到iOS和Android(同一个应用程序)中。
我想做一些我认为很简单的事情:绕过本地facebook进行登录/身份验证,始终使用网络对话。如何实现这一目标?
我的登录代码目前如下所示:
初始化代码:
//facebook initialization
FB.init({
appId: 'xxxxxxxxxxxx', //'<%#= FB_APP_ID %>',//'',
nativeInterface: CDV.FB,
useCachedDialogs: false
});
登录电话是:
FB.login(function(response) {
if (response.authResponse) {
// connected
me.signInFacebook({
token: response.authResponse.accessToken,
email: response.authResponse.email,
success: function (data) {
// hide login view and show tabview
form.destroy();
// continue whatever action was previously happening
me.continueAction(tabIndexBack, callback);
},
failure: function (response) {
// show errors Ext.Viewport.down('tabscontainerview').setActiveItem(3);
}
});
} else {
//go back
Ext.Viewport.down('tabscontainerview').setActiveItem(3);
alert('fb login error');
}
},{ scope: "email" });
感谢您的帮助!!
答案 0 :(得分:4)
我创建了一个插件,以方便Facebook和phonegap之间的连接,而不使用只有Jquery的Plugin Native:
答案 1 :(得分:1)
要绕过本机FB登录,您可以通过inAppBrowser或ChildBrowser插件在不使用Facebook(https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3)的JavaScript SDK的情况下制作自己的手动facebook身份验证流程。
您的应用必须启动重定向到端点,该端点将显示登录对话框:
gem 'spree', :github => 'spree/spree', :branch => 'master'
Facebook将人们重定向到上面提到的redirect_uri,并在URI片段中放置一个访问令牌以及一些其他元数据(例如令牌到期时间):
https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&response_type=token&scope=email
您的应用需要检测此重定向,然后从URI中读取访问令牌。然后,您可以直接跳到Inspecting access tokens步骤。
答案 2 :(得分:0)
在Android版本的插件中,您可以通过修改插件在me.facebook.authorize
类的login
操作中调用org.apache.cordova.facebook.ConnectPlugin
的方式来强制它使用该对话框。
您需要使用Facebook.FORCE_DIALOG_AUTH
传递额外的activityCode
参数:
me.facebook.authorize(cordova.getActivity(), me.permissions, Facebook.FORCE_DIALOG_AUTH, new AuthorizeListener(me));
我对iOS并不完全确定,但您可以尝试使用openWithBehavior
和FBSessionLoginBehaviorForcingWebView
答案 3 :(得分:0)
没有任何Facebook插件,您可以使用Facebook功能,为此使用 phonegap.facebook.inappbrowser.js 使用此js您可以轻松访问所有Facebook功能以获取更多信息访问此URL:{{3 }}