Android 如何从我的应用程序连接到facebook
我正在开发android应用程序,我希望用户在首次使用Facebook SDK打开应用程序时连接Facebook。 然后我想用我的应用程序中的特定信息发布到Facebook墙上。我尝试在我的应用程序中使用Facebook sdk。我已在mp应用程序和Facebook sdk之间进行了集成,但我不知道如何执行登录到Facebook并将特定消息发布到墙上的任务。我搜索stackoverflow以查找此任务,发现此代码,但我无法理解 对我来说也不是Android 如何从我的应用程序连接到facebook,android,Android,我正在开发android应用程序,我希望用户在首次使用Facebook SDK打开应用程序时连接Facebook。 然后我想用我的应用程序中的特定信息发布到Facebook墙上。我尝试在我的应用程序中使用Facebook sdk。我已在mp应用程序和Facebook sdk之间进行了集成,但我不知道如何执行登录到Facebook并将特定消息发布到墙上的任务。我搜索stackoverflow以查找此任务,发现此代码,但我无法理解 对我来说也不是 public class MainActivity
public class MainActivity extends Activity {
Facebook facebookClient;
SharedPreferences mPrefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
facebookClient=new Facebook("fb_App_id");
ImageButton facebookButton = (ImageButton) findViewById(R.id.button_FacebookShare);
facebookButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
loginToFacebook();
if (facebookClient.isSessionValid()) {
postToWall();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebookClient.authorizeCallback(requestCode, resultCode, data);
}
public void loginToFacebook() {
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
facebookClient.setAccessToken(access_token);
}
if (expires != 0) {
facebookClient.setAccessExpires(expires);
}
if (!facebookClient.isSessionValid()) {
facebookClient.authorize(this, new String[] { "publish_stream" }, new DialogListener() {
@Override
public void onCancel() {
// Function to handle cancel event
}
@Override
public void onComplete(Bundle values) {
// Function to handle complete event
// Edit Preferences and update facebook acess_token
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebookClient.getAccessToken());
editor.putLong("access_expires", facebookClient.getAccessExpires());
editor.commit();
postToWall();
}
@Override
public void onError(DialogError error) {
// Function to handle error
}
@Override
public void onFacebookError(FacebookError fberror) {
// Function to handle Facebook errors
}
});
}
}
private void postToWall() {
Bundle parameters = new Bundle();
parameters.putString("name", "Battery Monitor");
parameters.putString("link", "https://play.google.com/store/apps/details?id=com.ck.batterymonitor");
parameters.putString("picture", "link to the picture");
parameters.putString("display", "page");
// parameters.putString("app_id", "228476323938322");
facebookClient.dialog(MainActivity.this, "feed", parameters, new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
}
}
关于此,您应该参考以下问题。
这个代码有效。它肯定会解决您的问题。尝试使用Android Simple Facebook()-这是一个使Facebook SDK的使用更容易的层。根据文档,登录过程如下所示: 初始化回调侦听器:
OnLoginListener onLoginListener = new OnLoginListener() {
@Override
public void onLogin() {
// change the state of the button or do whatever you want
Log.i(TAG, "Logged in");
}
@Override
public void onNotAcceptingPermissions(Permission.Type type) {
// user didn't accept READ or WRITE permission
Log.w(TAG, String.format("You didn't accept %s permissions", type.name()));
}
/*
* You can override other methods here:
* onThinking(), onFail(String reason), onException(Throwable throwable)
*/
};
登录:
mSimpleFacebook.login(onLoginListener);
可能重复我使用此链接中的代码并添加类,但当我在emulator中运行时,我获得以下内容,但未能找到com.facebook.katana.provider.attributeidProvider的提供商信息。然后我想知道在我的应用程序中把app_id和key散列放在哪里