我正在使用Libgdx创建游戏,现在我已经到达了用户可以连接到他的Facebook帐户的部分,这样用户就可以将他的分数与朋友进行比较。
我能够在我的项目中实现facebook sdk包,在facebook和hashkey上获取应用ID。在那之后我撞墙了。我已经尝试了所有可以在网上找到的资源,但没有任何工作(花了2天时间)。
我的理解是我需要在我的核心项目中创建一个Interface,它将链接到我的android文件夹中的facebook身份验证类。
我尝试了多次尝试,许多项目都在网上提供,没有运气。
非常感谢任何帮助或可用的教程。
答案 0 :(得分:1)
我不确定你们已经尝试了什么,但这里有一个很好的来源:
https://github.com/TomGrill/gdx-facebook/wiki
从上面链接的wiki的第3部分,注意:
重要 facebook-android-sdk来自.aar文件。一些IDE(f.e。 Eclipse)无法处理此文件类型。那意味着你 必须使用命令行启动您的应用程序才能使其正常工作:
的Linux /最大值:
./ gradlew android:installDebug android:run
视窗:
gradlew android:installDebug android:run
我会尝试让您开始让用户登录,我打赌您可以从那里开始。如果遇到问题,请随时提问。有些部分是任意的,基于偏好。
在开始之前,要记住以下几点:
步骤:
配置主gradle文件
目录: 的 project_root 强> /build.gradle
为了澄清,主要的gradle文件是Project Root - > build.gradle,而不是Project Root - >核心 - >的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
根据Facebook API的要求,确保minSdkVersion
不低于15。如果使用官方的libGDX设置工具来创建项目,默认情况下可能会设置为9。
android {
...
defaultConfig {
...
minSdkVersion 15
...
}
...
}
此屏幕截图可能会回答另一个问题,或者两个问题,我觉得此时可能会有这个问题。它是一个成功使用GDXFacebook API的libGDX项目;虽然,我改变了applicationId
的场合。
将应用的Facebook App ID存储在XML文件中
目录: 的 project_root 强> /机器人/ RES /值/
添加一个新的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 强> /型芯/ 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()方法,然后该方法应该自己处理用户的登录屏幕/活动(您不必构建此屏幕,因为它&# 39;由Facebook API提供):
...
facebookApi.signIn();
...
上面的最后一段代码可能理想地放在按钮的监听器中,如下所示:
fbSignInButton.addListener(new ClickListener() {
@Override
public void clicked() {
facebookApi.signIn();
}
});
在这种情况下,单击该按钮时,应显示Facebook登录活动(以下裁剪的屏幕截图来自平板电脑设备)。
在基本级别,应该让用户登录Facebook。
接下来的步骤
对于其余的目标,在您修改和构建任意Facebook API帮助程序类(或者您选择构建此功能)时,查看以下示例应该会有所帮助。
您可能需要调整developers.facebook.com网站上的应用设置。
接下来要处理的事情可能是Facebook权限。任意助手类FacebookApi.java都以GDXFacebook wiki和Facebook API文档中建议的基本权限开始。
您必须根据需要添加更多权限。上面链接的GdxFacebookSampleApp.java类是开始使用它的一个很好的例子。
这应该有效,就像我一样。您可能需要根据需要进行修改,并实施自己的错误处理,以帮助指导您解决问题。
我预计这些步骤之间会出现一些问题,而目前我还无法发表评论;但是,我可以通过编辑答案来回应。所以随时提出问题,我会随着时间的推移做出反应/回应。