首页 > 编程知识 正文

unity facebook

时间:2023-05-06 04:56:55 阅读:283259 作者:696

Unity接入FaceBook 如何获取FaceBook SDKUnity导入Facebook SDKUnity代码

如何获取FaceBook SDK

注册前的准备工作
由于国内网络无法直接打开Facebook页面,因此需要一个较稳定的VPN,我使用的是SS,但是类似的软件还有很多,大家可以视自己的情况而定。
创建开发者账号
登录Facebook开发者后台
创建自己的应用
1.点击右上角【创建应用】

2.创建好应用后记录AppId并进入设置界面
3.点击添加平台,添加Android并填写Google Play 包名、类名、密钥散列(其中类名与密钥散列可以通过Unity中导入的Facebook SDK中获得。)

4.下载Facebook SDK的Unity版本

Unity导入Facebook SDK

1.双击Facebook SDK导入Unity(如需FaceBook SDK Demo 则保留Example目录,否者删除)
2.点击Unity菜单Facebook->Edit Settings

3.设置Edit Settings
*需要将FaceBook里的应用名,应用编号,客户端口令(再设置->高级里)填入对应的括号里
*在Android Build FaceBook Settings中的ClassName(类名)、Debug Android Key Hash(密钥散列)填入Facebook后台
注意坑点: 在Unity中生成的散列是错误的,后续出包后拉起FaceBook会提示密钥错误并且会把正确的密钥告诉你

可能出现错误导致无法获取Android Build FaceBook Settings里面的信息
1,报错Keytool not found.Make sure that Java is installed,and that Java tools are in your path:
这里要求jdk要使用jdk8。且要配置jdk环境变量。

2.报错OpenSSL not found,Make sure that OpenSSL is installed,and that it is in your path:
需要配置OpenSSL
上述下载的为非安装包,解压后,我直接丢到C盘根目录了。
系统环境变量Path中新建 C:openssl-0.9.8e_X64bin

3.配置好后,重启Unity,Android Build FaceBook Settings出现信息后,点击一下Regenerate Android Manifest

Unity代码

1.初始化
FB.Init()
初始化成功后,FB.IsInitialized为true

if (!FB.IsInitialized) { FB.Init(() => { if (FB.IsInitialized) { FB.ActivateApp(); } else { Debug.Log("FB OnInitComplete!"); Debug.Log("FB.AppId: " + FB.AppId); Debug.Log("FB.GraphApiVersion: " + FB.GraphApiVersion); //获取应用链接 FBGetAPPLinkUrl(); } }, (isUnityShutDown) => { Debug.Log("FB OnHideUnity: " + isUnityShutDown); }); } else { // Already initialized, signal an app activation App Event FB.ActivateApp(); }

2.登录
Facebook的功能都跟权限挂钩的,提供了两种方式的登录, LogInWithReadPermissions(读取权限) 和 LogInWithPublishPermissions(发布权限)。
你可以根据自己需要的接入的功能选择登录方式,并传入权限参数。
这里我用LogInWithReadPermissions

var perms = new List<string>() { "public_profile", "email" };//权限参数 FB.LogInWithReadPermissions(perms, (result) => { if (FB.IsLoggedIn) { //获取Token,UserID var aToken = AccessToken.CurrentAccessToken; aTokenStr = aToken.TokenString; } else { Debug.Log("User cancelled login"); } });

3.获取用户信息

FB.API("me?fields=id,name,picture,gender", HttpMethod.GET, (Result) =>//me?fields=id,name,picture,gender为想获取的用户信息{ if (result != null) { //Result.RawResult是Json数据,里面含了用户信息 }});

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。