Facebook第三方网页登录(JavaScript SDK)

文档网址:https://developers.facebook.com/docs/facebook-login/web#logindialog

一、应用配置  https://www.facebook.com/login.php?next=https%3A%2F%2Fdevelopers.facebook.com%2Fapps

1.输入跳转网址

应用面板中选择您的应用,然后前往产品 > Facebook 登录 > 设置。在 OAuth 客户端授权设置下的有效 OAuth 跳转网址字段中输入您的跳转网址以获得成功授权。

 

二、登录

参考:https://blog.csdn.net/zh_rey/article/details/78859543

<a href="" id="facebook">  

<script>

// 加载facebook sdk

(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'));


window.fbAsyncInit = function() {
FB.init({
appId: 'app-your-id',
cookie: true, // 启用cookie
xfbml: true, // 解析此页面上的社交插件
version: 'v2.8' // 使用图形api 2.8版本
});

// 点击按钮登录的代码

document.getElementById("facebook").οnclick=function(){
FB.login(function(response) {
if (response.status === 'connected') {
testAPI();
} else {

console.log("该用户没有登录")
}
}, {scope: 'public_profile,email'});
return false;
}

function testAPI() {
FB.api('/me', function(response) {
   FB.api('http://graph.facebook.com/'+response.id+'?fields=first_name,last_name,email', function(data) {
   //获取数据之后填充到对应的input上
   document.getElementById("firstName").value=data.first_name;
   document.getElementById("lastName").value=data.last_name;
   document.getElementById("email").value=data.email;
   });
});
}

</script>

三、退出

 

<button type="button" id="signout">退出</button>

 

<script>
document.getElementById('signout').onclick = function() {
FB.logout(function(response) {
console.log("用户已退出");
});
};
</script>

 

转载于:https://www.cnblogs.com/zousaili/p/9397110.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在React Native中封装原生第三方SDK的步骤如下: 1. 创建一个原生模块(Native Module),以便React Native应用程序可以与原生代码进行交互。对于iOS,你需要创建一个Objective-C或Swift类;对于Android,你需要创建一个Java类。 2. 在原生模块中编写代码,调用第三方SDK的API并将其封装为JavaScript可以调用的函数。你可以使用React Native提供的RCT_EXPORT_MODULE宏将该模块导出到JavaScript中。例如,下面是一个在iOS中封装Facebook SDK的例子: ```objective-c #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <React/RCTBridgeModule.h> @interface MyFacebookModule : NSObject <RCTBridgeModule> @end @implementation MyFacebookModule RCT_EXPORT_MODULE(); RCT_EXPORT_METHOD(login:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; [loginManager logInWithPermissions:@[@"public_profile", @"email"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { reject(@"login_error", error.localizedDescription, error); } else if (result.isCancelled) { reject(@"login_cancelled", @"User cancelled login", nil); } else { resolve(result.token.tokenString); } }]; } @end ``` 这个模块导出了一个名为`login`的函数,该函数会登录Facebook,并返回一个Promise,该Promise将在登录成功后解析为一个Facebook访问令牌,或在登录失败时拒绝。 3. 在JavaScript中导入原生模块,并使用它提供的函数。例如,你可以使用以下代码在React Native应用程序中调用上述iOS模块: ```javascript import { NativeModules } from 'react-native'; const { MyFacebookModule } = NativeModules; MyFacebookModule.login() .then(token => console.log(`Facebook access token: ${token}`)) .catch(error => console.error(`Failed to login: ${error}`)); ``` 这个代码导入了名为`MyFacebookModule`的原生模块,并调用其`login`函数。当该函数返回时,它会返回一个Promise,你可以使用该Promise来处理成功或失败的情况。 通过将原生第三方SDK封装到React Native模块中,你可以轻松地在React Native应用程序中使用该SDK,并将其与JavaScript代码无缝集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值