LibGdx facebook得分

时间:2017-09-12 20:34:13

标签: java android facebook-graph-api libgdx

我正在使用Libgdx创建游戏,现在我已经到达了用户可以连接到他的Facebook帐户的部分,这样用户就可以将他的分数与朋友进行比较。

我能够在我的项目中实现facebook sdk包,在facebook和hashkey上获取应用ID。在那之后我撞墙了。我已经尝试了所有可以在网上找到的资源,但没有任何工作(花了2天时间)。

我的理解是我需要在我的核心项目中创建一个Interface,它将链接到我的android文件夹中的facebook身份验证类。

我尝试了多次尝试,许多项目都在网上提供,没有运气。

非常感谢任何帮助或可用的教程。

1 个答案:

答案 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

我会尝试让您开始让用户登录,我打赌您可以从那里开始。如果遇到问题,请随时提问。有些部分是任意的,基于偏好。

在开始之前,要记住以下几点:

  1. 对于libGDX游戏的这个功能,应该使用Android模拟器/设备进行测试,因为桌面版本具有与Android不同的Facebook登录屏幕/界面。
  2. 在测试Facebook功能时,请确保Android模拟器/设备已连接到互联网。
  3. Facebook API为Android应用提供登录活动(登录页面),将按以下步骤添加到AndroidManifest.xml。 (这里不会涵盖自定义登录活动。)
  4. 步骤:

    配置主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的场合。

    enter image description here

    将应用的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登录活动(以下裁剪的屏幕截图来自平板电脑设备)。

    enter image description here

    在基本级别,应该让用户登录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类是开始使用它的一个很好的例子。

    这应该有效,就像我一样。您可能需要根据需要进行修改,并实施自己的错误处理,以帮助指导您解决问题。

    我预计这些步骤之间会出现一些问题,而目前我还无法发表评论;但是,我可以通过编辑答案来回应。所以随时提出问题,我会随着时间的推移做出反应/回应。