我正在尝试将 facebook 与我的 android 应用程序连接起来,我已经在 facebook 上创建了应用程序并获得了它的应用程序 ID。使用此 ID,此代码应发布在用户墙上。为什么下面的代码只是祝酒“在facebook上发布”而不是在我的墙上发布?
mFacebookBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("Facebook Activity", "After on create");
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
facebook.setAccessToken(access_token);
}
if (!facebook.isSessionValid()) {
facebook.authorize(FacebookActivity.this, PERMISSIONS,
new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token",
facebook.getAccessToken());
editor.putLong("access_expires",
facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError error) {
}
@Override
public void onError(DialogError e) {
}
@Override
public void onCancel() {
}
});
}
Log.d("Facebook Activity", "Logged in in Facebook");
facebookPost("Testing 1");
try {
facebook.logout(getApplicationContext());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void facebookPost(String string) {
// TODO Auto-generated method stub
// code for facebook post here
Log.d("Facebook Activity", "Facebook Post Method");
AsyncFacebookRunner mAsyncFbRunner = new AsyncFacebookRunner(
facebook);
Bundle params = new Bundle();
params.putString("message", string);
params.putString("name", "Test Name");
params.putString("caption","Test caption");
params.putString("link","www.test.com");
params.putString("description","test description");
params.putString("picture", "www.somelink.com/image.gif");
Log.d("Facebook Activity", "Firing Request to facebook");
mAsyncFbRunner.request("Me/feed", params, "POST",
new RequestListener() {
@Override
public void onMalformedURLException(
MalformedURLException e, Object state) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"Malformed URL Exception",
Toast.LENGTH_SHORT).show();
}
@Override
public void onIOException(IOException e,
Object state) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"Internet is not available", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onFileNotFoundException(
FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e,
Object state) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"Facebook Error", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onComplete(String response, Object state) {
// TODO Auto-generated method stub
mRunOnUi.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Posted to Facebook",
Toast.LENGTH_SHORT).show();
}
});
// Toast.makeText(getApplicationContext(),
// "Posted to facebook",
// Toast.LENGTH_SHORT).show();
}
}, new Object());
}
});
}