我正在使用Libgdx创建游戏,现在我已经到达用户可以连接到他的facebook帐户的部分,通过这种方式,用户可以将自己的得分与朋友进行比较。
我能够在我的项目中实现facebook sdk包,并在facebook和hashkey上获取应用程序ID。之后,我撞墙了。我已经尝试了所有可以在网上找到的可用资源,但是没有任何工作(花了2天时间)。
我了解的是,我需要在核心项目中创建一个接口,该接口将链接到我的android文件夹中的facebook身份验证类。
我尝试了很多在线项目,但都没有运气。
任何帮助或可用的教程将不胜感激。
最佳答案
我不确定您已经尝试了什么,但这是一个很好的来源:
https://github.com/TomGrill/gdx-facebook/wiki
在上面链接的Wiki的第3部分中,请注意:
重要说明facebook-android-sdk是.aar文件。一些IDE(例如
Eclipse)无法处理此文件类型。那意味着你
必须使用命令行启动您的应用程序才能使其工作:
Linux / Max:
./gradlew android:installDebug android:run
视窗:
gradlew android:installDebug android:run
我会尽力让您开始登录用户,然后打赌您可以从那里开始。如果您遇到问题,请随时提问。有些部分是任意的,并基于首选项。
开始之前,请记住以下几点:
对于libGDX游戏的此功能,应使用Android模拟器/设备进行测试,因为Desktop版本的Facebook登录屏幕/界面与Android不同。
测试Facebook功能时,请确保Android模拟器/设备已连接到互联网。
Facebook API为Android应用程序提供了登录活动(登录页面),将在以下步骤中将其添加到AndroidManifest.xml中。 (此处将不涵盖自定义登录活动。)
脚步:
配置主Gradle文件
目录:
project_root / build.gradle
为了澄清,主要的gradle文件是Project Root-> build.gradle,而不是Project Root-> core-> build.gradle。
加:
gdxFacebookVersion = '1.4.1'
下:
allprojects {
...
ext {
...
// here
}
...
}
加:
compile "de.tomgrill.gdxfacebook:gdx-facebook-android:$gdxFacebookVersion"
下:
project(":android") {
...
dependencies {
...
// here
}
}
加:
compile "de.tomgrill.gdxfacebook:gdx-facebook-core:$gdxFacebookVersion"
下:
project(":core") {
...
dependencies {
...
// here
}
}
请注意,一个是
...:gdx-facebook-android:...
,另一个是...:gdx-facebook-core:...
。配置Android Gradle文件
目录:project_root / android / build.gradle
确保
minSdkVersion
不低于15,这是Facebook API要求的。如果使用了官方的libGDX设置工具来创建项目,则默认情况下该值可能设置为9。android {
...
defaultConfig {
...
minSdkVersion 15
...
}
...
}
此屏幕快照可能会回答另一个或两个问题,我觉得这可能是一个问题。这是一个libGDX项目,已成功使用GDXFacebook API。不过,我为此更改了
applicationId
。将应用程序的Facebook App ID存储在XML文件中
目录:
project_root / android / res / values /
添加一个新的XML文件,该文件可以任意命名为“ facebook.xml”,或者仅使用应该已经存在的“ strings.xml”文件。
现在将以下内容添加到XML文件:
<string name="facebook_app_id">Your_Facebook_API_ID</string>
例:
<string name="facebook_app_id">1559365201012064</string>
将Internet权限和FacebookActivity添加到AndroidManifest.xml
目录:
project_root / android / AndroidManifest.xml
加:
<uses-permission android:name="android.permission.INTERNET" />
下:
<manifest xmlns:android="htt ... >
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="20" />
// here
...
</manifest>
加:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
下:
<manifest xmlns:android="htt ... >
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="20" />
<uses-permission android:name="android.permission.INTERNET" />
...
<application
android:allowBackup="true" ... >
<activity
android:name=" ... >
...
</activity>
// here
</application>
</manifest>
在核心源目录中添加帮助器类
目录:
project_root / core / src / [somewhere_around_here]
在以上目录中的任何位置,添加以下类(或您自己的帮助器类以完成相同的工作):
https://github.com/ronrihoo/GDX-Facebook-API-Helper/blob/master/FacebookApi.java
(备份:https://www.snip2code.com/Snippet/2695867/Example-helper-class-for-GDXFacebook)
从您的一个主类中,创建一个FacebookApi实例(任意帮助程序类),如下所示:
...
// TODO: not the best place to keep the app ID; change later
private static final String API_APP_ID = "Your_App_ID";
private FacebookApi facebookApi;
...
// and instantiate in a method (or constructor)
private void setupFbApiInst() {
facebookApi = new FacebookApi(API_APP_ID);
}
测试Facebook登录
使用帮助程序实例调用signIn()方法,然后该方法应自行处理用户的登录屏幕/活动(您不必构建此屏幕,因为它是由Facebook API提供的) :
...
facebookApi.signIn();
...
上面的最后一段代码可能理想地放在按钮的侦听器中,如下所示:
fbSignInButton.addListener(new ClickListener() {
@Override
public void clicked() {
facebookApi.signIn();
}
});
在这种情况下,单击按钮后,将显示Facebook登录活动(以下裁剪的屏幕截图来自平板设备)。
从根本上来说,应该就是让用户登录Facebook。
下一步
对于您的其余目标,在修改并建立在任意Facebook API帮助程序类上(或选择构建此功能)时,翻阅以下示例应该会有所帮助。
https://github.com/TomGrill/gdx-facebook-app/blob/master/core/src/de/tomgrill/gdxfacebook/app/GdxFacebookSampleApp.java
您可能需要在developers.facebook.com网站上调整应用程序设置。
接下来要处理的可能是Facebook权限。任意帮助程序类FacebookApi.java从GDXFacebook Wiki和Facebook API文档中建议的基本权限开始。
您必须根据需要添加更多权限。上面链接的GdxFacebookSampleApp.java类是一个入门的好例子。
这应该起作用,就像对我一样。您可能只需要根据需要进行修改,并实现自己的错误处理,以帮助指导您解决问题。
我预计这些步骤之间会发生一些问题,目前,我无法发表评论。但是,我可以通过编辑答案来回答。因此,随时提出问题,当我有空时,我会做出回应。
关于java - LibGdx Facebook分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46184907/