gpt4 book ai didi

java - 无法使用 libgdx 框架在 Android 中的 facebook 墙上发布游戏分数

转载 作者:行者123 更新时间:2023-12-01 12:38:29 25 4
gpt4 key购买 nike

我只是想制作一款游戏,我需要在 Facebook 墙上发布游戏得分。我正在遵循 libGDX 框架。下面是我的测试 Activity ,只是将我的自定义消息发布到 Facebook 墙上。

public class MainActivity extends Activity {

private static final String FB_APP_ID = "1452723631660564";
private static final String FACEBOOK_PERMISSION = "publish_stream";
private static final int FB_AUTH = 2; // ANY INTEGER VALUE
Facebook facebook = new Facebook(FB_APP_ID); //
static String FACEBOOK_UPDATE_MSG;
static String FACEBOOK_UPDATE_FAILURE;
static String FACEBOOK_UPDATE_SUCCESS;
static String FACEBOOK_SIGNIN_FAILED;
Handler fHandler = new Handler();

Map<Object, Object> preferences = new HashMap<Object, Object>();

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


login("Hello facebook test app");
}

@SuppressWarnings("deprecation")
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case FB_AUTH:
facebook.authorizeCallback(requestCode, resultCode, data);
break;
default:
finish();
break;
}
}


public void postMessageOnWall(final String msg) {


try {

if (facebook.isSessionValid()) {

new Thread(new Runnable() {

@Override
public void run() {
Bundle parameters = new Bundle();
parameters.putString("message", msg);
parameters.putString("link", "ANDROID_MARKET_LINK"); // or any other
// link
parameters.putString("name", "APP/GAME NAME");
try {
@SuppressWarnings("deprecation")
String response = facebook.request("me/feed", parameters,
"POST");

FACEBOOK_UPDATE_MSG = FACEBOOK_UPDATE_SUCCESS;
fHandler.post(mUpdateFacebookNotification);
} catch (IOException e) {
FACEBOOK_UPDATE_MSG = FACEBOOK_UPDATE_FAILURE;
fHandler.post(mUpdateFacebookNotification);

}
}

});

}



} catch (Exception e) {

Log.e("error-----------", e.getLocalizedMessage());

}

}



final Runnable mUpdateFacebookNotification = new Runnable() {
public void run() {
Toast.makeText(getBaseContext(), FACEBOOK_UPDATE_MSG,
Toast.LENGTH_LONG).show();
}
};

@SuppressWarnings("deprecation")
public void login(final String msg) {
/*String access_token = preferences.getString("facebook_access_token",
null);*/

String access_token = (String) preferences.get("facebook_access_token");
long expires = 0;
if (access_token != null) {
facebook.setAccessToken(access_token);
}
if (expires != 0) {
facebook.setAccessExpires(10000000l);
}
/*
* Only call authorize if the access_token has expired.
*/
if (!facebook.isSessionValid()) {
facebook.authorize(this, new String[] { "publish_stream","read_stream", "offline_access" },
FB_AUTH, new DialogListener() {
@Override
public void onComplete(Bundle values) {
/*preferences.putString("access_token",
facebook.getAccessToken());
preferences.putLong("access_expires",
facebook.getAccessExpires());
preferences.flush();*/

preferences.put("access_token", facebook.getAccessToken());
preferences.put("access_expires", facebook.getAccessExpires());
if (msg != "")
postMessageOnWall(msg);
else
OpenFbPage();
}

private void OpenFbPage() {



}

@Override
public void onFacebookError(FacebookError error) {
FACEBOOK_UPDATE_MSG = FACEBOOK_SIGNIN_FAILED;
fHandler.post(mUpdateFacebookNotification);
}

@Override
public void onError(DialogError e) {
FACEBOOK_UPDATE_MSG = FACEBOOK_SIGNIN_FAILED;
fHandler.post(mUpdateFacebookNotification);
}

@Override
public void onCancel() {
}
});
}

}

}

我在上面的代码中没有收到任何异常/错误,但它也没有在我的 Facebook 墙上发布我的自定义消息。它只是打开一个 Facebook 应用程序并加载警报,仅此而已。当我调试它时,它既没有到达线程的 postMessageOnWall() 的 run() 方法,也没有得到在同一方法中定义的任何响应。请指导我哪里错了。我知道我在单个 Activity 中编写了与 facebook 帖子相关的整个代码,但这只是一个测试应用程序。一旦成功,我就会分离逻辑。

最佳答案

在这个示例的数百个严重错误中,您没有启动线程(通过调用 start)。如果您确实尝试制作一个小型的、独立的示例(正如您应该做的那样),那么您自己就会发现。

关于java - 无法使用 libgdx 框架在 Android 中的 facebook 墙上发布游戏分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25347005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com